kafka消息的顺序性

传统队列的顺序性

传统队列在服务器上保存有序的记录,如果多个消费者消费队列中的数据, 服务器将按照存储顺序输出记录。虽然服务器按顺序输出记录,但是记录被异步传递给消费者, 因此记录可能会无序的到达不同的消费者。这意味着在并行消耗的情况下, 记录的顺序是丢失的。因此消息系统通常使用“唯一消费者”的概念,即只让一个进程从队列中消费, 但这就意味着不能够并行地处理数据

kafka的顺序保证

Kafka相比于传统消息队列还具有更严格的顺序保证

kafka的特性

1、kafka写入一个partition分区中的数据是一定有顺序的

2、kafka中一个消费者消费一个partition的数据,消费者取出消息时也是有顺序的

Kafka能够为一个消费者池提供顺序保证和负载平衡,是通过将topic中的partition分配给消费者组中的消费者来实现的, 以便每个分区由消费组中的一个消费者消耗

通过这样,我们能够确保消费者是该分区的唯一读者,并按顺序消费数据。众多分区保证了多个消费者实例间的负载均衡。但请注意,消费者组中的消费者实例个数不能超过分区的数量

posted @ 2023-06-12 15:55  上好佳28  阅读(247)  评论(0)    收藏  举报