如何平衡卡夫卡领导力?

时间:2014-10-21 07:58:43

标签: apache-kafka

我的kafka版本为kafka_2.9.2-0.8.1.1。我在集群中有两个代理,4个主题,每个主题有4个分区。

当我跑步时

sh kafka-topics.sh --describe --zookeeper rhost:2181

对于所有主题/分区,我将经纪人1视为领导者。

如何平衡领导者?

例如,对于主题1和主题2,将经纪人1作为领导者和 对于主题3和主题4,经纪人2作为领导者。

4 个答案:

答案 0 :(得分:9)

应自动重新平衡分区,因为代理配置参数auto.leader.rebalance.enable的默认值为true。 (见documentation

但是,默认情况下,此重新平衡每5分钟发生一次,由leader.imbalance.check.interval.seconds参数定义。如果您希望更频繁地发生这种情况,则必须修改此参数。

答案 1 :(得分:8)

您可以使用Preferred Replica Leader Election Tool

sh kafka-preferred-replica-election.sh --zookeeper zklist

这可以保证群集中经纪人的领导负荷均衡。

答案 2 :(得分:1)

我知道有点晚了,也许你已经有了答案,但为了平衡领导者,首先你需要让经纪人在所有分区之间同样优先,因为经纪人是首选领导者,它有两个标准首先它需要要成为insync副本,其次必须是副本列表中的第一个元素(奇怪的IMO),所以如果你有足够多的主题/分区,那么手动操作会更容易,否则你需要重新分配分配所有经纪人中的第一个元素(首选副本),然后启动首选领导者选举工具,这将确保首选领导者实际上是领导者。

答案 3 :(得分:0)

经纪人拥有一个可以在server.properties文件中设置的属性,该属性可以自动重新平衡领导层。默认情况下,它未启用。将以下代码行添加到每个代理并重新启动kafka。

auto.leader.rebalance.enable=true