天天看點

zookeeper特性及實作原理

解決的問題:

解決大量計算機資料一緻性問題,同時使得網絡中資料同步的可靠性增強。

鮮明特點:

zookeeper為分布式資料管理叢集。在對用戶端的管理中有效措施為:用戶端申請的節點類型及監聽機制。

節點類型有三種

持久節點,隻有當用戶端明确删除才能被删除。

臨時節點,用戶端會話結束,即被删除,且不能有子結點。

順序結點,順序的建立子節點。

監聽機制

使用戶端的資料同步。監控目錄結點及子目錄的變化,一旦變化通知所有watcher,進而每個用戶端很快知道變化,做出相應反應。

zookeeper組成:

成員

follower(處理非事務,如讀操作),leader(隻能有一個,處理事務),observer(加快處理非事務,不參與leader選舉)

ZAB協定(對自身的管理)

事務編号:每個事務有一個事務編号:ZXID,myID(自己選擇,每個節點不同)

ZXID高32位為選舉周期(leader朝代),低32位為遞增計數器,随事務的到來遞增,新周期到來則清零。

zk的核心是原子廣播,保證zk内各個服務節點之間的同步。ZAB協定使其得以實作。ZAB有兩種模式:恢複模式和廣播模式。

當伺服器啟動或者上司者崩潰之後,進入恢複模式。當上司者被選舉出來且大多數follower完成了與其狀态同步之後,恢複模式結束。

狀态同步保證了leader和server具有相同的系統狀态。