尽管没有消费者,消费者组仍停留在 'rebalancing'

Consumer group stuck in 'rebalancing' even though there are no consumers

我正在使用 kafka 版本 2.4.1(最近从 2.2.0 升级到 2.4.1)并注意到一个奇怪的问题。

即使应用程序(kafka 流)已关闭(没有 运行 的应用程序),但消费者组命令 returns 状态为重新平衡。我们的应用程序作为 kubernetes pod 运行。

root@bastion-0:# ./kafka-consumer-groups --describe --group groupname --bootstrap-server kafka-0.local:9094 

Warning: Consumer group 'groupname' is rebalancing.

我现在已经等了一段时间(30 分钟),即使应用程序已关闭,命令仍然报告 'rebalancing'。

即使我尝试删除群组,它也会显示以下消息。

root@bastion-0:/app/kafka_2.12-2.4.1/bin# ./kafka-consumer-groups.sh --delete --group group1  --bootstrap-server kafka.local:9094 

Error: Deletion of some consumer groups failed:
* Group 'group1' could not be deleted due to: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.GroupNotEmptyException: The group is not empty.
root@bastion-0:/app/kafka_2.12-2.4.1/bin# ./kafka-consumer-groups.sh --delete --group group2  --bootstrap-server kafka.local:9094 

Error: Deletion of some consumer groups failed:
* Group 'group2' could not be deleted due to: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.GroupNotEmptyException: The group is not empty.

当我查看组成员时,即使应用程序不是 运行,也会列出成员。是因为新的再平衡协议(合作再平衡)吗?

./kafka-consumer-groups 从哪里读取组成员信息。应用挂了会不会保存会员信息?

更新:

我用不同的组名提出了应用程序,结果很好。我也可以描述这个小组。即使那样,旧组仍处于 'rebalancing' 状态。

新更新 此外,我发现所有组的组协调器都是 kafka 集群中的节点之一,当我重新启动该节点时,问题就消失了。

问题:

组元数据存储在哪里?问题可能与损坏的动物园管理员有关吗?

这是在 issues.apache.org/jira/browse/KAFKA-9935 处作为错误提出的,重复 https://issues.apache.org/jira/browse/KAFKA-9752

自 2.2.3、2.3.2、2.4.2 和 2.5 及更高版本以来,这似乎已于 3 月修复,因此请确保使用最新版本。