Fromhtml
這篇文章是爲想借助 ZK 協調服務,建立分佈式應用的開發者們準備的。它包含核心概念和實踐兩部分。node
這篇文章的前四部分抽象的討論了 ZK 的一些概念。這些概念是理解並使用 ZK 所必須的。由以下幾部分:apache
接下來的四部分提供了實用的編程內容:編程
絕大部份內容能夠看成獨立的參考材料。然而,在開始編寫 ZooKeeper 程序以前,你應該至少閱讀ZK數據模型和基本操做章節。緩存
ZooKeeper 擁有一個有層次的命名空間,跟文件系統很像。惟一的不一樣是,ZK 中的每一個節點既能記錄數據,又能擁有子節點。好像是容許文件能看成目錄的文件系統。到節點的路徑老是以 / 分割的絕對路徑,沒有相對路徑這回事。【以後官網給出了路徑名的一些限制條件,我的感受就跟學編程語言時的變量命名規則同樣,知或不知都無妨。】編程語言
ZooKeeper 目錄樹中的節點被稱爲 Znode。Znode 維護着一個包含數據改變的版本號、acl 等組成的 stat 結構體。版本號和時間戳容許 ZooKeeper 驗證緩存和協調更新。每次 Znode 數據更新,版本號都會增長。例如,當客戶端獲取數據時,它同時也會獲取數據的版本。當客戶端刪除或更新數據時,必須提交這個節點的版本。默認狀況下,若是提交的這個版本號不與當前版本一致,更新就會失敗。分佈式