传统队列的顺序性
传统队列在服务器上保存有序的记录,如果多个消费者消费队列中的数据, 服务器将按照存储顺序输出记录。虽然服务器按顺序输出记录,但是记录被异步传递给消费者, 因此记录可能会无序的到达不同的消费者。这意味着在并行消耗的情况下, 记录的顺序是丢失的。因此消息系统通常使用“唯一消费者”的概念,即只让一个进程从队列中消费, 但这就意味着不能够并行地处理数据
kafka的顺序保证
Kafka相比于传统消息队列还具有更严格的顺序保证
kafka的特性
1、kafka写入一个partition分区中的数据是一定有顺序的
2、kafka中一个消费者消费一个partition的数据,消费者取出消息时也是有顺序的
Kafka能够为一个消费者池提供顺序保证和负载平衡,是通过将topic中的partition分配给消费者组中的消费者来实现的, 以便每个分区由消费组中的一个消费者消耗
通过这样,我们能够确保消费者是该分区的唯一读者,并按顺序消费数据。众多分区保证了多个消费者实例间的负载均衡。但请注意,消费者组中的消费者实例个数不能超过分区的数量
标签:顺序,消费者,记录,队列,分区,kafka,消息 From: https://www.cnblogs.com/yogayao/p/17475272.html