ZAB算法的完整过程是Zookeeper Atomic广播算法,该算法主要应用于Zookeeper。
ZAB算法主要由四个阶段组成:
ZAB算法的设计也将有四个阶段
在ZAB算法的设计中,只需要在进入正式ZAB算法时满足这种条件:以很大的概率,选择唯一的节点。它成为领导者。
简而言之,希望选出最认可且通常是正常运行的领导者,并且无需确保数据是否是最新的,最完整的。不是大多数节点识别的节点。如果该状态进入下一个节点,则ZAB算法将返回选举阶段并重新选举。
在此阶段选出的领导者称为预先所有者。当发现和同步阶段尚未失败时,选举的节点将成为真正的领导者节点。
选举阶段的所有节点均处于选举状态。当进入下一阶段时,前节点的状态将处于领导状态,其他节点的状态处于追随者状态。
此阶段的主要目的:
为了完成上述两个目的,将执行以下过程
此阶段的主要目的:
执行以下过程:
广播阶段的主要目的:
该过程如下:
ZAB 1.0算法的实现主要是四个阶段
与设计的选举阶段一致,选择一个节点以成为初步所有者,然后作为领导者身份进入下一阶段
这个阶段是主要目的:
详细过程如下:
此阶段的主要目的:
详细过程如下:
收到快照/trun/diff消息后,追随者不会立即适用。相反,它正在等待新闻信息。收到新闻消息后,以下两个操作将是原子,然后将发送ACK。
如果领导者收到大多数追随者发送的ACK,它将获得E.SEND请求的Epoch的领导
追随者收到上述请求后,输入下一阶段
注意:追随者根据收到的不同要求进行不同的治疗
相同的设计ZAB算法
设计的ZAB算法选择进入阶段的前阶段仅需要一个领导者。如果领导者的数据不是最新的数据,它将从以下的最新数据中修复。领导者将所有历史记录发送到追随者。通过两个阶段提交,提案和提交操作实现的ZAB算法是相同的作为设计选举阶段的设计。设计设计的设计
原始:https://juejin.cn/post/7100029251784540197