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



我有以下设置:
3个卡夫卡经纪人和一个3个动物园管理员合奏
1 个主题,包含 12 个分区和 3 个副本(因此每个 kafka 代理是 4 个分区的领导者)

我停止其中一个代理 - 它从集群中删除,其分区的领导权被转移到剩下的两个代理

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

它工作正常,除了我发现重新平衡之前花费的时间太长(如分钟)。这在无负载下发生 - 不会向集群发送任何消息,也不会使用任何消息。

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

动物园管理员滴答时间 = 2000

夫卡 zookeeper.connection.timeout.ms = 6000

(基本上是默认配置)

有谁知道 kafka 和/或动物园管理员中的哪些配置参数会影响领导者平衡所需的时间?

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

最新更新