我的Kafka集群有问题。我有3个代理,因此当我停止代理1(例如)时,每个具有leader 1的主题分区都会使用副本配置中的seconde代理更改其leader。所以这是一个好的行为,而且效果很好。
但当我重新启动broker 1时,我需要执行: ./kafka-preferred-replica-election.sh --zookeeper myHost
因为当前的领导者是另一个复制品。
所以我的问题是:有没有一种方法可以让Kafka自动完成?
谢谢
我的Kafka集群有问题。我有3个代理,因此当我停止代理1(例如)时,每个具有leader 1的主题分区都会使用副本配置中的seconde代理更改其leader。所以这是一个好的行为,而且效果很好。
但当我重新启动broker 1时,我需要执行: ./kafka-preferred-replica-election.sh --zookeeper myHost
因为当前的领导者是另一个复制品。
所以我的问题是:有没有一种方法可以让Kafka自动完成?
谢谢
1条答案
按热度按时间lzfw57am1#
我假设您的默认(当所有经纪人都在运行时)分配是平衡的,并且首选的领导者分布均匀。
是的,当代理重新启动时,kafka可以自动为所有分区重新选择首选的领导者。这实际上是默认启用的,请参阅
auto.leader.rebalance.enable
.重新启动经纪人后,Kafka最多可以
leader.imbalance.check.interval.seconds
引发连任。默认为5分钟。所以也许你等得不够久!还有
leader.imbalance.per.broker.percentage
它定义了允许的非首选领导者的百分比。默认值为10%。有关这些配置的详细信息,请参阅kafka网站上的broker config部分。