如何配置 kafka 集群在停止和重新启动代理后重新选举分区领导所需的时间?

Jan*_*rek 6 apache-kafka apache-zookeeper

我有以下设置:
3 个 kafka 代理和 3 个 zookeeper 将
1 个主题与 12 个分区和 3 个副本(每个 kafka 代理因此是 4 个分区的领导者)

我停止了其中一个代理 - 它从集群中删除,其分区的领导权移至剩余的两个代理

我重新启动代理 - 它重新出现在集群中,最终领导权得到重新平衡,因此每个代理都是 4 个分区的领导者。

它工作正常,除了我发现重新平衡前花费的时间太长(如几分钟)。这发生在无负载的情况下 - 没有消息发送到集群,没有消息被消耗。

卡夫卡版本 0.9.0.0,动物园管理员 3.4.6

动物园管理员tickTime = 2000

卡夫卡动物园管理员.connection.timeout.ms = 6000

(基本上是默认配置)

有谁知道 kafka 和/或 zookeeper 中的哪些配置参数会影响领导者 rabalancing 的时间?

Jan*_*rek 6

正如官方文档http://kafka.apache.org/documentation.html#configuration(有关代理配置的更多详细信息可以在scala类kafka.server.KafkaConfig中找到。)实际上有一个leader.imbalance.check.interval.seconds属性默认为300 (5 分钟),将其设置为 30 秒即可满足我的需求。