ZK Curator框架

一、Curator

  1. 爲了更好的實現Java操作Zookeeper服務器,後來出現了Curator框架,非常的強大,目前已經是Apache的頂級項目,裏面提供了更多豐富的操作,例如session超時重連、主從選舉、分佈式計數器、分佈式鎖等等適用於各種複雜的zookeeper場景的API封裝。
  2. maven依賴:
<dependency>
     <groupId>org.apache.curator</groupId>
     <artifactId>curator-framework</artifactId>
     <version>2.4.2</version>
</dependency>

二、Curator框架使用

  1. 框架中使用鏈式編程風格,易讀性更強,使用工程方法創建連接對象。使用CuratorFrameworkFactory的倆個靜態工廠方法(參數不同)來實現:

    參數1:connectString,連接串;
    參數2:retryPolicy,重試連接策略。有四種實現分別爲:ExponentialBackoffRetry、RetryNTimes、RetryOneTimes、RetryUntilElapsed;
    參數3:sessionTimeoutMs會話超時時間默認爲60000ms;
    參數4:connectionTimeoutMs連接超時事件,默認爲15000ms;

    注意:對於retryPolicy策略通過一個接口來讓用戶自定義實現。

  2. 創建節點create方法,可選鏈式項:createingParentsIfNeeded(),withMode(),forPath(),withACL()等;

  3. 刪除節點delete方法,可選鏈式項:deletingChildrenIfNeeded(),guaranateed(),withVersion(),forPath()等;
  4. 讀取和修改數據方法,getData(),setData()
  5. 異步綁定回調方法。比如創建節點時綁定一個回調函數,該回調函數可以輸出服務器的狀態碼以及服務器事件類型。還可以加入一個線程池進行優化操作。
  6. 讀取子節點方法,getChildren()
  7. 判斷節點是否存在方法,checkExists()

三、Curator的監聽

  1. 如果要使用類似Watcher的監聽功能Curator必須依賴一個jar包,Maven依賴:
<dependency>
     <groupId>org.apache.curator</grouId>
     <artifactId>curator-recipes</artifactId>
     <version>2.4.2</version>
</dependency>

有了這個依賴包,我們使用NodeCache的方式去客戶端示例中註冊一個監聽緩存,然後實現對應的監聽方法即可,這裏我們主要有兩種監聽方式:
1). 監聽節點的新增、修改操作:NodeCacheListener
2). 監聽子節點的新增、修改、刪除操作:PathChildrenCacheListener

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章