想比较传统消息系统,kafka可以很好的保证有序性~
来源:互联网 发布:悠悠球淘宝正品店 编辑:程序博客网 时间:2024/05/21 19:37
传统的队列在服务器上保存有序的消息,如果多个consumers同时从这个服务器消费消息,服务器就会以消息存储的顺序向consumer分发消息。虽然服务器按顺序发布消息,但是消息是被异步的分发到各consumer上,所以当消息到达时可能已经失去了原来的顺序,这意味着并发消费将导致顺序错乱。为了避免故障,这样的消息系统通常使用“专用consumer”的概念,其实就是只允许一个消费者消费消息,当然这就意味着失去了并发性。
在这方面Kafka做的更好,通过分区的概念,Kafka可以在多个consumer组并发的情况下提供较好的有序性和负载均衡。将每个分区分只分发给一个consumer组,这样一个分区就只被这个组的一个consumer消费,就可以顺序的消费这个分区的消息。因为有多个分区,依然可以在多个consumer组之间进行负载均衡。注意consumer组的数量不能多于分区的数量,也就是有多少分区就允许多少并发消费。
Kafka只能保证一个分区之内消息的有序性,在不同的分区之间是不可以的,这已经可以满足大部分应用的需求。如果需要topic中所有消息的有序性,那就只能让这个topic只有一个分区,当然也就只有一个consumer组消费它。
来源:kafka入门
0 0
- 想比较传统消息系统,kafka可以很好的保证有序性~
- 如何保证kafka 的消息机制
- 如何保证kafka 的消息机制
- 如何保证kafka 的消息机制
- kafka保证消息交付
- Kafka delivery保证(kafka消息投递保证)
- 保证线程的有序性,使用jion方法
- Kafka消息保证不丢失
- storm读kafka数据源保证消息不丢失的方法
- 分布式的消息系统Kafka
- Kafka 与消息队列的快速比较
- 消息处理-很好的系统函数
- kafka--高性能的分布式消息系统
- 强大的分布式消息系统kafka
- volatile不能保证程序执行的原子性以及只能一定程度上保证有序性
- volatile不能保证程序执行的原子性以及只能一定程度上保证有序性
- 消息系统Kafka介绍
- KAFKA分布式消息系统
- Leetcode 337. House Robber III
- vim 使用之窗口显示路径、编码及等相关属性
- Linux的GCC基本用法
- 队列----循环队列的实现
- Gradle 打包到本地maven库
- 想比较传统消息系统,kafka可以很好的保证有序性~
- CSS相关问题(二)
- 360查出 HEUR/Malware.QVMxx.Gen 病毒含义
- 什么是表压?什么是绝压?表压和绝压什么关系?
- VBS文件运行
- Android Application类详解
- Mtrace
- 开发阶段的环境部署总结
- BZOJ NOI十连测第二场