据我了解,其中一位经纪人被选为负责消费者再平衡的集团协调员。
Discovered coordinator host:9092 (id: 2147483646 rack: null) for group good_group
我有3个节点,复制因子为3和3个分区。 一切都很好,当我在非协调节点上杀死kafka时,消费者仍在接收消息。
但是当我用协调器杀死那个特定节点时,没有发生重新平衡,我的java消费者应用程序也没有收到任何消息。
2018-05-29 16:34:22.668 INFO AbstractCoordinator:555 - Discovered coordinator host:9092 (id: 2147483646 rack: null) for group good_group.
2018-05-29 16:34:22.689 INFO AbstractCoordinator:600 - Marking the coordinator host:9092 (id: 2147483646 rack: null) dead for group good_group
2018-05-29 16:34:22.801 INFO AbstractCoordinator:555 - Discovered coordinator host:9092 (id: 2147483646 rack: null) for group good_group.
2018-05-29 16:34:22.832 INFO AbstractCoordinator:600 - Marking the coordinator host:9092 (id: 2147483646 rack: null) dead for group good_group
2018-05-29 16:34:22.933 INFO AbstractCoordinator:555 - Discovered coordinator host:9092 (id: 2147483646 rack: null) for group good_group.
2018-05-29 16:34:23.044 WARN ConsumerCoordinator:535 - Auto offset commit failed for group good_group: Offset commit failed with a retriable exception. You should retry committing offsets.
我做错了什么,有办法吗?
答案 0 :(得分:1)
但是当我用协调器杀死那个特定节点时,没有发生重新平衡,我的java消费者应用程序也没有收到任何消息。
组协调员接收来自消费者组中所有消费者的心跳。它维护一个活动消费者列表,并在更改此列表时启动重新平衡。然后组长执行重新平衡活动。
这就是为什么如果你杀死小组协调员,重新平衡就会停止。
<强>更新强>
如果组协调器代理关闭,将通知Zookeeper并且选举开始从活动代理自动提升新的组协调器。所以与小组协调员无关。让我们看一下日志:
2018-05-29 16:34:23.044 WARN ConsumerCoordinator:535 - Auto offset commit failed for group good_group: Offset commit failed with a retriable exception. You should retry committing offsets.
内部主题 __ consumer_offset 的复制因子可能具有默认值1.您可以检查 default.replication.factor 和 offsets.topic的值。 replication.factor 位于server.properties文件中。如果默认值为1,则应将其更改为更大的值。如果不这样做,组协调器将关闭,导致偏移管理器在没有备份的情况下停止。因此,无法完成提交偏移的活动。