Apache kafka 增量合作再平衡导致连接器不平衡

Apache kafka 增量合作再平衡导致连接器不平衡,apache-kafka,apache-kafka-connect,Apache Kafka,Apache Kafka Connect,自从升级到Kafka 2.3(也包括Kafka connect 2.3)后,我们在设置中遇到了许多不平衡的连接器,其中应包括Kafka connect中新的增量合作再平衡,如下所述: 让我解释一下我们的设置,我们正在部署多个Kafka connect集群,以便在HDFS上转储Kafka主题。为每个hdfs连接器生成一个连接群集,这意味着在任何时候,一个连接群集上只运行一个连接器。这些集群部署在Kubernetes之上,在私有轮询中随机选择IP 让我们举个例子。对于这个hdfs连接器,我们生成了

自从升级到Kafka 2.3(也包括Kafka connect 2.3)后,我们在设置中遇到了许多不平衡的连接器,其中应包括Kafka connect中新的增量合作再平衡,如下所述:

让我解释一下我们的设置,我们正在部署多个Kafka connect集群,以便在HDFS上转储Kafka主题。为每个hdfs连接器生成一个连接群集,这意味着在任何时候,一个连接群集上只运行一个连接器。这些集群部署在Kubernetes之上,在私有轮询中随机选择IP

让我们举个例子。对于这个hdfs连接器,我们生成了一个包含20个工作线程的connect集群。这个集群上应该运行40个任务,因此我们可以预期每个工作人员有2个任务。但是,正如下面的命令所示,当一段时间后查询connect API时,连接器似乎真的不平衡,一些工作人员甚至根本不工作,而其中一人拥有28个任务

bash-4.2$curl localhost:8083/connectors/connector name/status | jq'.tasks[]|.worker_id'| sort | uniq-c
...
1 "192.168.32.53:8083"
1 "192.168.33.209:8083"
1 "192.168.34.228:8083"
1 "192.168.34.46:8083"
1 "192.168.36.118:8083"
1 "192.168.42.89:8083"
1 "192.168.44.190:8083"
28 "192.168.44.223:8083"
1 "192.168.51.19:8083"
1 "192.168.57.151:8083"
1 "192.168.58.29:8083"
1 "192.168.58.74:8083"
1 "192.168.63.102:8083"
在这里,我们希望使用整个工人投票,并在一段时间后平衡连接器。我们预计会有以下情况:

bash-4.2$curl localhost:8083/connectors/connector name/status | jq'.tasks[]|.worker_id'| sort | uniq-c
...
2 "192.168.32.185:8083"
2 "192.168.32.53:8083"
2 "192.168.32.83:8083"
2 "192.168.33.209:8083"
2 "192.168.34.228:8083"
2 "192.168.34.46:8083"
2 "192.168.36.118:8083"
2 "192.168.38.0:8083"
2 "192.168.42.252:8083"
2 "192.168.42.89:8083"
2 "192.168.43.23:8083"
2 "192.168.44.190:8083"
2 "192.168.49.219:8083"
2 "192.168.51.19:8083"
2 "192.168.55.15:8083"
2 "192.168.57.151:8083"
2 "192.168.58.29:8083"
2 "192.168.58.74:8083"
2 "192.168.59.249:8083"
2 "192.168.63.102:8083"
第二个结果实际上是通过手动杀死一些工作人员来实现的,这是一点运气(我们现在没有找到一种适当的方法来强制整个connect集群保持平衡,这更像是一个尝试和失败的过程,直到连接器平衡为止)


是否有人已经遇到了这个问题并设法妥善解决了它?

似乎在较旧的协议中,这个问题没有发生。这不是一个真正的解决方案,但它可能会起作用,等待一个真正的解决方案。这是错误的JIRA