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 先來了解幾個...