zooKeeper和ZAB協議總結一下

2021-09-22 02:24:25 字數 574 閱讀 4981

zookeeper的主備同步和leader選舉是通過zab協議來完成的。寫一下能夠記得更牢一些。

因為zk大多數是讀,少部分寫,所以讀都是讀follower。寫的是leader

資料同步的過程類似於二階段提交

client 寫資料到leader,leader為每乙個follower構建佇列,非同步將寫入的資料放到佇列裡

佇列裡的資料傳送proposal給到每乙個follower

follower收到後,將資料寫入,並且傳送ack

leader收到大多數的ack之後,傳送ack給到每乙個follower,follower根據如果沒問題就commit,然後傳送給leader,leader收到之後給到client

像這樣的分布式協議,主要還是考慮特殊情況。

可能出現的特殊情況如下:

leader故障,毫無疑問, zk重新選取主,然後重試

有一半的follower沒ack,然後就沒法commit,client接收到的也是失敗,資料並沒有持久化了,不會丟失。

leader傳送commit 丟了,那麼follower沒法commit,資料也沒持久化下來,client接收到的失敗。

Zookeeper理解 ZAB協議

zab協議 協議介紹 關鍵字 過半數節點 訊息廣播 順序性保證 奔潰恢復 基本特性 leader選舉 資料同步 丟棄資料 結論 深入zab協議 系統模型 存在任意q q是 的子集 q,q 存在任意時候的q1 q2,他們的交集不等於空集合 此處的意義在於q1或q2 任意乙個都超過半數,應此不管如何去交...

Zookeeper集群搭建以及zab協議

單機環境下,jdk zookeeper安裝完畢,基於一台虛擬機器,進行zookeeper的偽集群搭建,zookeeper集群中包含三個節點,節點對外提供服務埠號分別為2181,2182,2183 基於zookeeper 3.4.10複製三份zookeeper安裝好的伺服器檔案,目錄名稱分別為zook...

ZAB協議在Zookeeper中的實現

zookeeper 是乙個典型的分布式資料一致性解決方案,分布式應用程式可以基於 zookeeper 實現諸如資料發布 訂閱 負載均衡 命名服務 分布式協調 通知 集群管理 master 選舉 分布式鎖和分布式佇列等功能。zab 協議是為分布式協調服務zookeeper專門設計的一種支援崩潰恢復的一...