Zookeeper--ZAB与Paxos算法联系与区别
生活随笔
收集整理的這篇文章主要介紹了
Zookeeper--ZAB与Paxos算法联系与区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ZAB與Paxos算法的聯系與區別
兩者聯系
- 兩者都存在一個類似于Leader的進程角色,由其負責協調多個Follower進程的運行
- Leader進程會等待超過半數的Follower做出正確的反饋后,才會將一個提案進行提交
- 在ZAB協議,每個Proposal中都包含一個epoch值,用來代表當前的Leader周期,在Paxos算法中同樣有這樣的標識,只是名字變成了Ballot
兩者區別
-
Paxos算法中,一個新選舉產生的主進程會進行兩個階段工作:
- 第一階段讀階段,這個階段,新的主進程會通過和所有其他進程進行通信的方式來收集上一個主進程提出的提案,并將他們提交
- 第二階段被稱為寫階段,這個階段,當前主進程開始提出自己的提案。
-
ZAB在Paxos的基礎上添加了一個同步節點,同步節點之前,ZAB也存在一個和Paxos算法中的讀階段非常類似的過程,稱為(Discovery)階段。在同步階段中,新的Leader會確保存在過半的Follower已經提交了之前Leader周期中的所有事務Proposal。這一步驟有效的保證Leader在新周期中提出事務Proposal之前,所有進程都已經完成了對之前所有事務Proposal的提交。一旦完成同步后,ZAB就執行和Paxos類似的寫階段。
-
總的來說ZAB協議和Paxos算法本職區別在于兩者設計目標的不同。ZAB主要用于構建一個高可用的分布式數據主備系統,例如Zookeeper,而Paxos算法則是用于構建一個分布式的一致性狀態系統。
上一篇Zookeeper—ZAB協議
下一篇Zookeeper–Watcher機制源碼剖析一
總結
以上是生活随笔為你收集整理的Zookeeper--ZAB与Paxos算法联系与区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zookeeper理解---ZAB协议
- 下一篇: 戴牙套期间可以减肥吗