卡夫卡什么时候轮换分区负责人?我们有财产可以控制它吗



我试图了解Kafka多久轮换一次分区领导?我们有财产可以控制它吗?

在创建主题时分配分区领导根据Kafka关于副本管理的文档,分区的分配是以循环方式进行的:

我们试图以循环方式平衡集群中的分区,以避免将高容量主题的所有分区集中在少数节点上。同样,我们试图平衡领导力,使每个节点都是其分区的比例份额的领导者。

在理想情况下,前导分区不会旋转。然而,在某些情况下,领导者必须转移到另一个代理,例如代理停止和启动以进行维护或更新。然后,前导将被转移到另一个同步复制副本。

要管理引线分区中的这些转换(例如处理不平衡(,您有两种选择。

选项1:编写kafka-preferred-replica-election.sh脚本

此命令行工具可用于帮助将领导力带回创建主题时存在的副本。有关更多详细信息以及如何使用,请参阅在线文档。

下面显示了最简单的示例。这将触发所有主题的重新分配。

kafka-preferred-replica-election.sh --zookeeper localhost:2181

选项2:使用broker配置进行自动重新平衡

在经纪人级别,您有以下配置,可以帮助您引导主题领导者的自动再平衡:

  • auto.leader.rebalance.enable:启用自动引线平衡。后台线程定期检查分区前导的分布,可由leader.imbalance.check.interval.seconds配置。如果引线失衡超过leader.imbalance.per.broker.percentage,则会触发引线重新平衡到分区的首选引线。(默认为true(

  • leader.imbalance.check.interval.seconds:控制器触发分区重新平衡检查的频率。(默认为300(

  • leader.imbalance.per.broker.percentage:每个经纪人允许的领导者失衡的比率。如果每个经纪人的领先者余额超过该值,则控制者将触发领先者余额。该值以百分比形式指定。(默认为10(

最新更新