Kafka大白话(●四●)

目录

🧡Broker副本

🧡Leader选举

🧡Follower故障

🧡Leader故障

🧡Broker分区副本分配

Leader Partition自动平衡


💟这里是CS大白话专场,让枯燥的学习变得有趣!

💟没有对象不要怕,我们new一个出来,每天对ta说不尽情话!

💟好记性不如烂键盘,自己总结不如收藏别人!

🧡Broker副本

💌默认副本1个,一般配2个。分区中所有副本统称AR,AR = ISR + OSR。

🍠ISR:Leader以及和Leader保持同步的Follower集合,若Follower长时间(默认30s)未向Leader发送请求或同步数据,则Follower将被踢出ISR。

🍠OSR:从ISR中踢出的延迟过多的副本。

🧡Leader选举

💌若Leader故障,从ISR中选举新的Leader。

🍠Broker启动后在Zookeeper中注册。

🍠谁先注册Controller,由其监听Broker节点变化。

🍠Controller决定Leader选举:在ISR中存活,按AR中的顺序轮询选举

🍠Controller将节点信息传到ZK。

💌若下图2、3分区的Leader挂掉,则新的Leader为:1,0,0,1。

💌若恢复3节点,则添加到ISR末尾。

🧡Follower故障

🍠LEO(Log End Offset):每个副本最后一个数据为offset,LEO = offset + 1。

🍠HW(High Watermark):所有副本中最小的LEO,即最小的Broker上LEO和HW位置相同。

💌Follower故障如何处理:

🍠临时踢出ISR

🍠Leader和Follower继续接收数据,LEO和HW往后移。

🍠待该Follower恢复后,Follower会读取本地磁盘记录的上次的HW,并将log文件高于HW的部分去掉,从HW开始向Leader进行同步,即从故障的地方往后更新

🍠等该Follower的LEO大于等于该Partition的HW,即Follower追上Leader之后,就可以重新加入ISR了。

🧡Leader故障

🍠从ISR中选出一个新的Leader

🍠为保证多个副本之间的数据一致性,其余的Follower会先将各自的log文件高于HW的部分去掉,然后从新的Leader同步数据。

P.S. 只能保证副本之间的数据一致性,并不能保证数据不丢失或者不重复。

🧡Broker分区副本分配

💌尽可能保证负载均衡,保证数据可靠性。

Leader Partition自动平衡

💌若某些Broker宕机,Leader Partition集中分布在其他Broker上,造成集群负载不均衡。

🍠auto.leader.rebalance.enable 默认true。

🍠每个Broker允许的不平衡的Leader比例超过10%,触发Leader再平衡。

不平衡率 = 不平衡数((Leader==AR中第一个节点)?0:1) / 分区数

🍠每300s检测一次。

P.S.最好不要频繁触发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值