一、Leader Partition自动平衡的概述
-
正常情况下,Kafka本身会自动把Leader Partition均匀分散在各个机器上,来保证每台机器的读写吞吐量都是均匀的。但是如果某些broker宕机,会导致Leader Partition过于集中在其他少部分几台broker上,这会导致少数几台broker的读写请求压力过高,其他宕机的broker重启之后都是follower partition,读写请求很低,造成集群负载不均衡。
二、Leader Partition自动平衡的相关配置参数
-
配置参数
参数名称 |
描述 |
auto.leader.rebalance.enable |
默认是 true,自动 Leader Partition 平衡。生产环境中,leader 重选举的代价比较大,可能会带来性能影响,建议设置为 false 关闭。 |
leader.imbalance.per.broker.percentage |
默认是 10%。每个 broker 允许的不平衡的 leader的比率。如果每个 broker 超过了这个值,控制器会触发 leader的平衡。 |
leader.imbalance.check.interval.seconds |
默认值 300 秒。检查 leader 负载是否平衡的间隔时间 |
三、Leader Partition自动平衡的示例
-
假设集群只有一个onetopic主题。如下图所示
-
如下图所示:针对第一个节点,分区的AR优先副本是3节点,但是3节点却不是Leader节点,所以不平衡数加1,AR副本总数是4。所以broker0节点不平衡率为1/4>10%,需要再平衡。
-
如下图所示:第三个节点和第四个节点节点与第一个节点不平衡率一样,需要再平衡。第二个节点的不平衡数为1,不需要再平衡。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)