Zookeeper原子廣播Zab

2021-08-03 09:47:20 字數 1186 閱讀 9480

zookeeper的原子廣播

zookeeper的核心是原子廣播,這個機制保證了各個server之間的同步。實現這個機制的協議叫做zab協議。zab協議有兩種模式,它們分別是恢復模式(選主)和廣播模式(同步)。當服務啟動或者在領導者崩潰後,zab就進入了恢復模式,當領導者被選舉出來,且大多數server完成了和leader的狀態同步以後,恢復模式就結束了。狀態同步保證了leader和server具有相同的系統狀態。

為了保證事務的順序一致性,zookeeper採用了遞增的事務id號(zxid)來標識事務。所有的提議(proposal)都在被提出的時候加上了zxid。實現中zxid是乙個64位的數字,它高32位是epoch用來標識leader關係是否改變,每次乙個leader被選出來,它都會有乙個新的epoch,標識當前屬於那個leader的統治時期。低32位用於遞增計數。

每個server在工作過程中有三種狀態:

looking:當前server不知道leader是誰,正在搜尋

leading:當前server即為選舉出來的leader

following:leader已經選舉出來,當前server與之同步

zookeeper的讀寫機制

zookeeper是乙個由多個server組成的集群

乙個leader,多個follower

每個server儲存乙份資料副本

全域性資料一致

分布式讀寫

更新請求**,由leader實施

zookeeper的保證

更新請求順序進行,來自同乙個client的更新請求按其傳送順序依次執行

資料更新原子性,一次資料更新要麼成功,要麼失敗

全域性唯一資料檢視,client無論連線到哪個server,資料檢視都是一致的

實時性,在一定事件範圍內,client能讀到最新資料

zookeeper的選舉

半數通過

3臺機器 掛一台 2 > 3/2

4臺機器 掛2臺 2 !> 4 / 2

zookeeper 原子廣播機制

1 client與server是通過nio方式通訊的。2 訊息是fifo方式執行的 順序的,先進先出 3 讀訊息可以通過zookeeper的leader和所有的follower。4 寫訊息必須通過leader。zookeeper 的核心是原子廣播機制,這個機制保證了各個 server 之間的同步。實...

關於Zookeeper的原子廣播和崩潰恢復

1.zab zookeeper atomic broadcast 是一套專門為zookeeper設計的用於原子廣播和崩潰恢復的協議 2.zab基於2pc演算法進行設計,利用了過半性和paxos演算法進行了改進 atomic broadcast 原子廣播 1.作用 保證資料一致性。強一致性 最終一致性...

zookeeper的廣播模式和恢復模式

zookeeper是乙個高效能分布式應用協調服務。zookeeper主要可以提供如下的服務 1 naming service 2 配置管理 3 leader election 4 服務發現 5 同步 6 group service 7 barrier 8 分布式佇列 9 兩階段提交 1 先來了解幾個...