這三個都是分布式一致性協議,ZAB基於Paxos修改后用於ZOOKEEPER協議,RAFT協議出現在ZAB協議之后,與ZAB差不多,也有很大區別。
1. Paxos
分布式節點分為3種角色, Proposer, Acceptor, Learner
Proposer:提出議案[Mn, Vn]
Accptor:決定最終議案
Learner:不參與議案的提出與決定,學習最后的議案
Proposer:
1. prepare階段:提出議案編號M, 向Acceptor集合發送
2. 如果收到來自半數以上的Acceptor響應,向Acctoptor發送Accept請求
Acceptor:
1. Prepare:響應proposer prepare請求
2. Accepte: 響應Accept請求
2. ZAB協議
節點分為3種角色1, Follower, Leader, Observer
1. 選出leader
2. 客戶端提出的事物都轉給Leader處理
類似二階段協議
1. Leader發送Propose給Fowller
2. 收到半數以上Ack,發送Commit給Follwer
3. Observer不參與Leader選舉,同步數據,數據副本。客戶端可以讀取Observer數據,提高Zookeeper集群工作效率