我们来看kafka -- 主题管理&分区平衡(原理版)

我们来看kafka -- 主题管理&分区平衡[原理版]

当前环境

docker环境下搭建了kafka3节点集群

主题创建

  • 创建分区数为3、副本因子为3的主题
  • 使用脚本:kafka-topics.sh
// 创建主题
./kafka-topics.sh --create --bootstrap-server kafka1:9092  --replication-factor 3 --partitions 3 --topic partitions-test

主题查看

从查看的结果看,3个分区(背后是具体的分区leade副本)分布在3个kafka节点上,leader副本所在的节点也便是标识分区所在节点(好绕人),可见分区分布均匀

//查看主题分区分布
./kafka-topics.sh --describe --bootstrap-server kafka1:9092 --topic partitions-test

在这里插入图片描述

分区再平衡

某个节点下线后,其上的某个分区的leader副本下线,该分区再其他节点上的副本升级为leader副本对外提供读写服务,这样造成,存在单个节点上有多个分区leader情况,导致节点负载增加。故障恢复,节点上线,分区在该节点上的leader副本转为follower副本,分区leader副本分布情况未有改善!

节点下线

//查看主题分区分布
./kafka-topics.sh --describe --bootstrap-server kafka1:9092 --topic partitions-test

在这里插入图片描述

节点上线

//查看主题分区分布
./kafka-topics.sh --describe --bootstrap-server kafka1:9092 --topic partitions-test

在这里插入图片描述

分区平衡

Kafka 的分区自动平衡的功能,对应的 broker 端参数是auto.leader.rebalance.enable,默认值为true,则 Kafka 的控制器会启动一个定时任务,这个定时任务会轮询所有的 broker节点,计算每个broker节点的分区不平衡率(broker中的不平衡率=非优先副本的leader个数/分区总数)是否超过leader.imbalance.per.broker.percentage参数配置的比值,默认值为 10%,如果超过设定的比值则会自动执行优先副本的选举动作以求分区平衡。执行周期由leader.imbalance.check.interval.seconds控制,默认值为300秒,即5分钟

//查看主题分区分布
./kafka-topics.sh --describe --bootstrap-server kafka1:9092 --topic partitions-test

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UCoding

您喝茶~~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值