即使没有消费者,消费者群体仍陷于“重新平衡”

use*_*610 11 apache-kafka apache-kafka-streams

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

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

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

Warning: Consumer group 'groupname' is rebalancing.

Run Code Online (Sandbox Code Playgroud)

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

即使我尝试删除该组,它也会给出以下消息。

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.
Run Code Online (Sandbox Code Playgroud)

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

./kafka-consumer-groups 从哪里读取组成员信息。如果应用程序关闭,它会保存会员信息吗?

更新

我用不同的组名启动了应用程序,结果很好。我也可以描述这个组。即便如此,旧集团仍处于“重新平衡”状态。

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

问题

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

Den*_*din 2

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

现在看来,自 3 月份以来,2.2.3、2.3.2、2.4.2 和 2.5 及更高版本的问题已得到修复,因此请确保使用最新版本。