如何为具有多个分区的主题保留消息序列?

nil*_*212 2 apache-kafka kafka-consumer-api kafka-producer-api

我想要了解当消息被写入具有多个分区的主题时Kafka如何维护消息序列的任何信息/解释.例如,我有多个消息生成器,每个消息生成器按顺序生成消息,并在具有多个分区的Kafka主题上写入.在这种情况下,消费者组将如何使用消息.

ame*_*tic 6

Kafka仅提供分区内记录的总订单,而不是主题中不同分区之间的记录.即使在一个分区内,如果启用了重试并且max.in.flight.requests.per.connection大于1 ,您仍然可能会遇到无序事件.

解决方法是创建仅包含一个分区的主题,但这意味着每个使用者组只有一个使用者进程.


Kra*_*log 5

Kafka将根据给予生产者的消息密钥将消息存储在分区中.如果没有给出,则消息将以循环方式写入分区.要保持对主题的排序,您需要确保有序序列具有相同的键,或者主题只有一个分区.