1.Follower挂了

在讲这个之前,首先介绍两个概念
1.LEO(Log End Offset)
每个副本的最后一个offset,LEO就是最新的offset+1
2.HW(High Watermark)
所有副本中最小的LEO.
如果follower挂了,首先会从isr中退出,在这期间Leader和Follower继续接收数据,等到follower恢复之后,首先找到hw,并将log文件高于HW的部分截取掉,从HW开始向Leader进行同步。
其实这里有个问题,就是为什么要将log文件高于HW部分截取掉,不直接向Leader进行同步,因为Leader始终是数据比较多的?
这里解释一下:如果leader挂了,数据最少的节点成为leader,那follower比Leader数据多,那多的数据来自哪里呢?因此,需要截取掉那一部分数据。
2.如果是Leader挂了呢。
isr中选取新的leader,其他的follower截取hw,然后向leader同步。
Follower故障恢复与Log同步策略:LEO与HW的角色,
本文讲述了Follower挂起时,如何通过LEO(LogEndOffset)和HW(HighWatermark)处理数据同步问题。当follower恢复后,需删除高于HW的log,确保数据一致性。同样,Leader挂起时,isr会选择新Leader并同步至其他follower。
694

被折叠的 条评论
为什么被折叠?



