为什么新消费者群体的kafka消费者(0.10.0.0)会看到旧的/以前发布的消息?

时间:2016-11-16 19:49:28

标签: apache-kafka kafka-consumer-api

我有一个制片人发布关于名为' mytopic'的主题的消息。正好。我在2个不同的消费者群体中有2个消费者正在收听这些消息。我按照以下顺序开始了这两个消费者和制作人。

1)在组' group1'中启动消费者1 2)启动生产者发布数百条消息

一段时间后,我检查消费者1的偏移量,这正如我所料:

/opt/kafka_2.11-0.10.0.0/bin/kafka-consumer-offset-checker.sh --zookeeper localhost:2181 --topic mytopic --group group1

输出:

Group Topic Pid Offset logSize Lag Owner group1 mytopic 0 30230 36942 6712 none

3)现在我在小组' group2'中启动消费者2收听相同的消息,但每次poll()调用都会返回0消息。 此使用者的偏移检查显示其偏移量与logSize相同。

/opt/kafka_2.11-0.10.0.0/bin/kafka-consumer-offset-checker.sh --zookeeper localhost:2181 --topic mytopic --group group2

输出: Group Topic Pid Offset logSize Lag Owner group2 mytopic 0 36942 36942 0 none

具有新消费者群组的任何其他消费者的相同问题。为什么消费者在发布消息之后加入新的消费者群体,即使主题上存在消息(即,尚未删除),也看不到旧消息?

1 个答案:

答案 0 :(得分:3)

您需要在消费者配置中将参数设置auto.offset.reset更改为值"earliest" - 默认值为"latest",告知新消费者在日志的当前末尾开始消费。