分区领导者在创建主题时分配。根据 Kafka 关于副本管理的文档,分区的分配是以循环方式进行的:
我们尝试以循环方式平衡集群内的分区,以避免将大量主题的所有分区聚集在少量节点上。同样,我们尝试平衡领导力,以便每个节点都是其分区中一定比例份额的领导者。
在理想的情况下,领导者分区不会轮换。然而,在某些情况下,领导者必须移动到另一个代理,例如代理停止和启动以进行维护或更新。然后领导者将转移到另一个同步副本。
要管理领导者分区中的这些转变(例如处理不平衡),您有两种选择。
该命令行工具可用于帮助将领导力带回副本,因为它们在创建主题时就已存在。请参阅在线文档以了解更多详细信息以及如何使用它。
最简单的例子如下所示。这将触发所有主题的重新分配。
kafka-preferred-replica-election.sh --zookeeper localhost:2181
Run Code Online (Sandbox Code Playgroud)
在代理级别,您可以使用以下配置来帮助您引导主题领导者的自动重新平衡:
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)
| 归档时间: |
|
| 查看次数: |
1255 次 |
| 最近记录: |