支持斷線重連、永久watcher、遞歸操做而且能跨平臺(.NET Core)的ZooKeeper異步客戶端

在公司內部的微服務架構中有使用到了「ZooKeeper」,雖然官方有提供了.NET的SDK,但易用性很是的差,且搜遍github、nuget,沒有發現一個能夠跨平臺且易用的組件,因此我又「美化」了一個輪子。java

什麼是ZooKeeper?

ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。git

ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。github

項目介紹

該項目使用了 Apache ZooKeeper .NET async Client 組件,除提供了基本的zk操做,還額外封裝了經常使用的功能以便讓.net開發者更好的使用zookeeper。 api

此項目是開源的,採用了:Apache 2.0開源協議。 session

支持的平臺

  1. .NET 4及以上
  2. .NET Core

項目地址

GitHub:https://github.com/RabbitTeam/zookeeper-client 架構

NuGet:https://www.nuget.org/packages/Rabbit.Zookeeper/ async

提供的功能

  1. session過時重連
  2. 永久watcher
  3. 遞歸刪除節點
  4. 遞歸建立節點
  5. 跨平臺(支持.net core)

使用說明

下面列一下經常使用的使用方法,不只限於此哦!分佈式

建立鏈接

image

建立節點

image

獲取節點數據

image

獲取子節點

image

判斷節點是否存在

image

刪除節點

image

更新節點

image

訂閱數據變化

image

訂閱子節點變化

image

FAQ

何時會觸發 "SubscribeDataChange" 事件 ?

在如下狀況下會觸發經過 "SubscribeDataChange" 方法訂閱的事件: 微服務

  1. 節點被建立
  2. 節點被刪除
  3. 節點數據發生改變
  4. zk鏈接重連成功

何時會觸發 "SubscribeChildrenChange" 事件 ?

在如下狀況下會觸發經過 "SubscribeChildrenChange" 方法訂閱的事件: oop

  1. 節點被建立
  2. 節點被刪除
  3. 節點子節點發生改變
  4. zk鏈接重連成功

如何在 "xxxxChange" 事件中區分節點的狀態 ?

在事件觸發參數會有個類型爲 "EventType" 的屬性 "Type",經過該屬性能夠清楚的區分出節點變動的緣由。

爲何要寫這個程序,它與 "ZooKeeperEx" 有什麼區別 ?

官方提供的組件,只提供了基本的api,在正常的zk使用情景中須要作很是複雜的事情,滋生出不少額外的代碼而且不能保證其執行的正確性。

在java語言中也有對官方zk進行封裝的包 ZKClient,當前組件也是參考了這個項目。具體組件包提供了什麼功能請參考 "提供的功能" 這一節。

有問題怎麼辦?

能夠經過如下方式聯繫我(依據最容易獲得處理優先級排序):

  1. 在github上創建Issues
  2. 加入QQ羣:384413261(點擊加入:RabbitHub)進行提問
  3. 給我發郵件,majian159@live.com
  4. 站內私信我
相關文章
相關標籤/搜索