我有一个制片人发布关于名为' 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
具有新消费者群组的任何其他消费者的相同问题。为什么消费者在发布消息之后加入新的消费者群体,即使主题上存在消息(即,尚未删除),也看不到旧消息?
答案 0 :(得分:3)
您需要在消费者配置中将参数设置auto.offset.reset
更改为值"earliest"
- 默认值为"latest"
,告知新消费者在日志的当前末尾开始消费。