Kafka Resiliency - 小组协调员

时间:2018-05-29 21:10:58

标签: java spring apache-kafka

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

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. 

我做错了什么,有办法吗?

1 个答案:

答案 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,则应将其更改为更大的值。如果不这样做,组协调器将关闭,导致偏移管理器在没有备份的情况下停止。因此,无法完成提交偏移的活动。