paulwong

          My Links

          Blog Stats

          常用鏈接

          留言簿(66)

          隨筆分類(1388)

          隨筆檔案(1146)

          文章分類(7)

          文章檔案(10)

          相冊

          收藏夾(2)

          AI

          Develop

          E-BOOK

          Other

          養生

          微服務

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          60天內閱讀排行

          zookeeper client使用筆記

          Zookeeper數據模型

          1. zk具有像文件系統一樣的層狀的命名空間。
          2. 命名空間中的每一個節點都可存儲數據。
          3. 只有絕對路徑,名字都是unicode字符。
          4. 每個節點都是ZNode類型(如同文件系統的stat)。
          5. 每個ZNode上可以設置Watch,znode改變會通知設置的watch的客戶端,同時清除Watch
          6. 每次對znode的讀寫都是原子的,每次讀寫都是帶要操作znode版本號的。
          7. 盡量保證單個znode在1MB一下。通常幾K。
          8. 臨時節點的概念:只存在于一個Session的有效期內的節點。臨時節點不允許有子節點。
          9. 使用zxid來標示zk中的每個事件(導致zk狀態改變的事件)。全局唯一。
          10. 對每個znode的改變觸發當前znode versions的改變。每個znode維護三個version(version:對應每次znode data改變,cversion:對應每次子節點改變,aversion:對應每次acl改變)

          Zookeeper狀態轉換

          1. session timeout時間至少是ticket time(默認是2000ms)的2倍,同時最大不能超過20倍ticket time
          2. 一旦session 過期,不必手動重新連接。zk client會處理重連。
          3. Session的過期與否是由server端決定的。在timeout時間之內,server沒有收到來自
            client的任何信息(心跳)時,則判定client session過期。同時會刪掉屬于這個session的臨時節點(znode),同時通知watch這個節點的client。
          4. 一旦session過期的client重新連接上zk cluster,將會受到“session expired”通知。
          5. 在建立zk連接時,會設置一個默認的watcher,當client狀態改變的時候,這個watcher會被調用。一般將這個watcher的初始狀態設為disconnect。這樣就可以處理后續的session 過期事件。

          Zookeeper Watch

          1. 每一次的讀操作(getData(), getChildren(), exists())都可以對操作的節點設置watcher。
          2. watch是一次性的。一旦數據改變或是刪除,則觸發watcher,后續的改變則不會再觸發。
          3. 因為watch是異步發送的,所以有可能在節點操作返回碼返回之前先返回給client。zk只能保證client收到的watch事件是在他設置watch事件返回成功后收到。
          4. watch的兩種類型:data watch(由getData() 和 exists()設置),返回znode data 和 child watch(由getChildren()設置), 返回children list。
          5. 導致watch事件丟失的一種情況:“ a watch for the existance of a znode not yet created will be missed if the znode is created and deleted while disconnected.

          posted on 2013-08-23 10:47 paulwong 閱讀(708) 評論(0)  編輯  收藏 所屬分類: ZOOKEEPER

          主站蜘蛛池模板: 南安市| 钦州市| 宣威市| 磐石市| 晋城| 昌黎县| 屯留县| 莲花县| 博白县| 西畴县| 英吉沙县| 睢宁县| 丰城市| 翼城县| 兰考县| 桐柏县| 缙云县| 克山县| 花莲市| 松桃| 历史| 都江堰市| 夏河县| 皋兰县| 平湖市| 怀柔区| 东兴市| 永康市| 岐山县| 临武县| 建德市| 曲松县| 三都| 大丰市| 蒙山县| 德保县| 四会市| 德昌县| 百色市| 达州市| 司法|