Leader和Follower故障处理细节
- LEO(Log End Offset):每个副本的最后一个offset,LEO其实就是最新的offset+1
- HW(High Watermart):所有副本中最小的LEO
一、Follower故障
- Follower发生故障后悔被临时踢出ISR
- 这个期间Leader和Follower继续接收数据
- 待该Follower恢复后,Follower会读取本地磁盘记录的上次的HW,并将log文件高于HW的部分截取掉,从HW开始向Leader进行同步
- 等该Follower的LEO大于等于该Partition的HW,即Follower追上Leader之后,就可以重新加入ISR了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xqdnLZOk-1655882170546)(C:\Users\14116\Desktop\Kafka\20.Kafka副本Leader和Follower故障处理细节.assets\image-20220606111206035.png)]
二、Leader发生故障
- Leader发生故障之后,会从ISR中选出一个新的Leader
- 为保证多个副本之间的数据一致性,其余的Follower会先将各自的log文件高于HW的部分截掉,然后从新的Leader同步数据
- 注意:
只能保证副本之间的数据一致性,并不能保证数据不丢失或者不重复