zookeeper conceptual

Zookeeper 數據模型 node

Zookeeper 擁有着相似文件系統的命名空間,惟一的區別是在命名空間下的每個節點都有數據和他關聯 服務器

Znodes session

zookeeper 的節點 znode, znode 維護着一些列狀態信息 包含數據的版本,acl 權限修改信息,時間戳  服務器返回數據和客戶端操做信息都是攜帶版本信息的 若是版本信息不一致的話那個將會失敗(有點像樂觀鎖實現) spa

TIPS 這種處理行爲可用戶覆蓋處理 生命週期

znode 的幾個特徵 事件

watches  get

客戶點能夠對znode 添加監聽器, 當觸發的時候 服務器會給客戶端一個通知 it

Data Access io

數據存儲在節點,數據特性是 原子特性的(不可再分割),每個節點都有相應的ACL(Access Control List) 設定。zookeeper 節點存儲的數據主要起協調各節點工做 zookeeper

Ephemeral Nodes(臨時節點)

  1.  沒有子節點
  2.  生命週期和會話同樣

Sequence Nodes(序列節點)

  1. 命名惟一
  2. 建立節點的時候指定他的counter 

Time in zookeeper

zookeeper 有多種跟蹤方式

Zxid(ZooKeeper Transaction Id)

每個change 操做都攜帶着一個惟一的ZXID,若是changeA 的 zxid > changeB 的 zxid, 那麼  那麼changeB 將會優先發生(越小優先級越高)

Version Number(版本號)

每次change 都會修改版本號 3 個版本號

  1. number of changes to the data of a znode
  2. number of changes to the children of a znode
  3. number of changes to the ACL of a znode

Ticks

多服務器時,使用ticks 定義時間事件,載入狀態,會話超時,節點之間connection 超時等

會話超時設定 2 倍的 心跳時間

Real time

zookeeper 時間 須要你本身放進來 不適用本機時間

zookeeper 的狀態信息結構

每一個節點的狀態信息都是由如下數據字段組成的

  • czxid

    建立節點的Zxid

  • mzxid

    最後一次修改節點的Zxid

  • ctime

    節點建立時間(毫秒級別)

  • mtime

    節點最後修改時間(毫秒界別)

  • version

    節點數據版本信息

  • cversion

    子節點版本號信息

  • aversion

    acl 版本號信息

  • ephemeralOwner

    若是該節點是臨時節點 這表示爲會話ID 不然爲 0

  • dataLength

    該節點的數據長度

  • numChildren

    該節點子節點的數量

zookeeper session

session 狀態圖


 資料列表

 http://coolxing.iteye.com/category/278800

相關文章
相關標籤/搜索