ZooKeeper 官方教程[翻譯]

Zhoust發表於2019-03-28

From

簡介

這篇文章是為想借助 ZK 協調服務,建立分散式應用的開發者們準備的。它包含核心概念和實踐兩部分。

這篇文章的前四部分抽象的討論了 ZK 的一些概念。這些概念是理解並使用 ZK 所必須的。由如下幾部分:

  • ZooKeeper 資料模型
  • ZooKeeper 會話
  • ZooKeeper Watches
  • 一致性擔保(Consistency Guarantees)

接下來的四部分提供了實用的程式設計內容:

  • 建立節點:ZooKeeper 操作指南
  • 繫結(Bindings)
  • 程式模型和簡單示例[官網並沒有展示,讓自行查詢]
  • 常見問題和解決

絕大部分內容可以當作獨立的參考材料。然而,在開始編寫 ZooKeeper 程式之前,你應該至少閱讀ZK資料模型和基本操作章節。

ZooKeeper 資料模型

ZooKeeper 擁有一個有層次的名稱空間,跟檔案系統很像。唯一的不同是,ZK 中的每個節點既能記錄資料,又能擁有子節點。好像是允許檔案能當作目錄的檔案系統。到節點的路徑總是以 / 分割的絕對路徑,沒有相對路徑這回事。【之後官網給出了路徑名的一些限制條件,個人感覺就跟學程式語言時的變數命名規則一樣,知或不知都無妨。】

ZNode

ZooKeeper 目錄樹中的節點被稱為 Znode。Znode 維護著一個包含資料改變的版本號、acl 等組成的 stat 結構體。版本號和時間戳允許 ZooKeeper 驗證快取和協調更新。每次 Znode 資料更新,版本號都會增加。例如,當客戶端獲取資料時,它同時也會獲取資料的版本。當客戶端刪除或更新資料時,必須提交這個節點的版本。預設情況下,如果提交的這個版本號不與當前版本一致,更新就會失敗。

相關文章