我有以下设置:
3名卡夫卡经纪人和3名动物园管理员
1个主题,包含12个分区和3个副本(每个kafka经纪人因此是4个分区的领导者)
我停止其中一个经纪人 - 它从集群中删除,其分区的领导权移动到剩下的两个经纪人
我重新启动代理 - 它再次出现在集群中,最终领导层重新平衡,因此每个代理都是4个分区的领导者。
它工作正常,除了我发现在重新平衡之前花费的时间太长(比如分钟)。这在无负载情况下发生 - 没有消息发送到集群,也不消耗任何消息。
Kafka版本0.9.0.0,zookeeper 3.4.6
zookeeper tickTime = 2000
kafka zookeeper.connection.timeout.ms = 6000
(基本上是默认配置)
有谁知道kafka和/或zookeeper中的配置参数会影响领导者拉平的时间吗?
答案 0 :(得分:3)
如官方文档http://kafka.apache.org/documentation.html#configuration中所述(有关代理配置的更多详细信息,请参阅scala类kafka.server.KafkaConfig。)
实际上有一个leader.imbalance.check.interval.seconds
属性默认为300(5分钟),将其设置为30秒即可满足我的需求。