消费者如何确保与卡夫卡生产商的一致性?

时间:2016-06-22 08:36:00

标签: apache-kafka

例如,我只有一个代理和一个名为“Test-topic”的主题,包含3个分区和2个副本。当制作人向主题发送3条消息时,

  1. 第一条消息将存储在分区1
  2. 第二条消息将存储在分区2
  3. 第3条消息将存储在分区1
  4. 当消费者从该主题中读取数据时,如何确保消息顺序仍为1 \ 2 \ 3消息?

1 个答案:

答案 0 :(得分:3)

kafka提供的唯一保证是,消息将在分区内订购。见link

  

生产者发送到特定主题分区的消息将按照发送顺序附加。也就是说,如果消息M1由与消息M2相同的生产者发送,并且首先发送M1,则M1将具有比M2更低的偏移并且在日志中更早出现。   
消费者实例按照它们存储在日志中的顺序查看消息。

在您的情况下,消费者可以看到诸如1 \ 2 \ 3 OR 1 \ 3 \ 2 OR 2 \ 1 \ 3

之类的消息