Kafka Resiliency – 集团协调员

据我了解,其中一位经纪人被选为负责消费者再平衡的集团协调员。

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. 

我做错了什么,有办法解决这个问题吗?

但是当我用协调器杀死那个特定节点时,重新平衡没有发生,我的java消费者应用程序没有收到任何消息。

组协调器接收来自消费者组中所有消费者的心跳。 它维护一个活动消费者列表,并在此列表的更改时启动重新平衡。 然后组长执行重新平衡活动。

这就是为什么如果你杀死集团协调员,重新平衡就会停止。

UPDATE

在组协调器代理关闭的情况下,将通知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.您可以检查server.properties文件中default.replication.factoroffsets.topic.replication.factor的值。 如果默认值为1,则应将其更改为更大的值。 如果不这样做,组协调器将关闭,导致偏移管理器在没有备份的情况下停止。 因此,无法完成提交偏移的活动。