Zookeeper主要用在分布式應用中實現(xiàn)一致性協(xié)調(diào)調(diào)度服務。它的命名空間類似傳統(tǒng)文件系統(tǒng),每個節(jié)點都以唯一的路徑進行標識,不同的是,每個節(jié)點除了可以擁有子節(jié)點外,還可擁有相對性的data數(shù)據(jù)。

一、Zookeeper命名空間

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

上圖是一個典型的Zookeeper命名空間結(jié)構(gòu),通過路徑"/app1/p_1"可訪問znode1節(jié)點,每個節(jié)點可存儲少量數(shù)據(jù),如狀態(tài)、配置、位置信息等等,且data信息量很小,一般在byte到KB級別。節(jié)點znode維護一個狀態(tài)stat結(jié)構(gòu)(包括數(shù)據(jù)變化的版本號、ACL變化、時間戳),以允許緩存驗證與協(xié)調(diào)更新。每當節(jié)點數(shù)據(jù)內(nèi)容改變時,多一個版本號,類似HBase??蛻舳双@取數(shù)據(jù)的同時也獲取相對應的版本號。節(jié)點數(shù)據(jù)內(nèi)容以原子方式讀寫,讀操作會讀取該znode的全部data數(shù)據(jù),同樣寫操作也會覆蓋該znode的全部data數(shù)據(jù),不存在部分讀寫的情況。同時,每個節(jié)點有一個訪問控制列表ACL(Access Control List)來約束訪問操作,即具有權限控制。

znode存在兩種:

常規(guī)的znode: 由用戶顯式創(chuàng)建和刪除

ephemeral znode:臨時型znode, 其生命周期伴隨于創(chuàng)建它的session, session結(jié)束后,ZooKeeper Server會自動刪除它,當然用戶也可以顯式的刪除

 

二、Zookeeper的Watches

網(wǎng)友評論