首页 文章

如何配置kafka集群在停止并重新启动代理后重新选择分区负责人所需的时间?

提问于
浏览
1

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

我停止其中一个经纪人 - 它从集群中删除,其分区的领导权移动到剩下的两个经纪人

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

它工作正常,除了我发现在重新 balancer 之前花费的时间太长(如分钟) . 这在无负载情况下发生 - 没有消息发送到集群,也不消耗任何消息 .

Kafka版本0.9.0.0,zookeeper 3.4.6

zookeeper tickTime = 2000

kafka zookeeper.connection.timeout.ms = 6000

(基本上是默认配置)

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

1 回答

  • 3

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

相关问题