支持断线重连、永久watcher、递归操作并且能跨平台(.NET Core)的ZooKeeper异步客户端...
在公司內(nèi)部的微服務(wù)架構(gòu)中有使用到了“ZooKeeper”,雖然官方有提供了.NET的SDK,但易用性非常的差,且搜遍github、nuget,沒有發(fā)現(xiàn)一個可以跨平臺且易用的組件,所以我又“美化”了一個輪子。
什么是ZooKeeper?
ZooKeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個開源的實現(xiàn),是Hadoop和Hbase的重要組件。它是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護、域名服務(wù)、分布式同步、組服務(wù)等。
ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯的關(guān)鍵服務(wù),將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。
項目介紹
該項目使用了 Apache ZooKeeper .NET async Client 組件,除提供了基本的zk操作,還額外封裝了常用的功能以便讓.net開發(fā)者更好的使用zookeeper。
此項目是開源的,采用了:Apache 2.0開源協(xié)議。
支持的平臺
項目地址
GitHub:https://github.com/RabbitTeam/zookeeper-client
NuGet:https://www.nuget.org/packages/Rabbit.Zookeeper/
提供的功能
使用說明
下面列一下常用的使用方法,不僅限于此哦!
創(chuàng)建連接
創(chuàng)建節(jié)點
獲取節(jié)點數(shù)據(jù)
獲取子節(jié)點
判斷節(jié)點是否存在
刪除節(jié)點
更新節(jié)點
訂閱數(shù)據(jù)變化
訂閱子節(jié)點變化
FAQ
什么時候會觸發(fā) "SubscribeDataChange" 事件 ?
在以下情況下會觸發(fā)通過 "SubscribeDataChange" 方法訂閱的事件:
什么時候會觸發(fā) "SubscribeChildrenChange" 事件 ?
在以下情況下會觸發(fā)通過 "SubscribeChildrenChange" 方法訂閱的事件:
如何在 "xxxxChange" 事件中區(qū)分節(jié)點的狀態(tài) ?
在事件觸發(fā)參數(shù)會有個類型為 "EventType" 的屬性 "Type",通過該屬性可以清楚的區(qū)分出節(jié)點變更的原因。
為什么要寫這個程序,它與 "ZooKeeperEx" 有什么區(qū)別 ?
官方提供的組件,只提供了基本的api,在正常的zk使用情景中需要做非常復(fù)雜的事情,滋生出很多額外的代碼并且不能保證其執(zhí)行的正確性。
在java語言中也有對官方zk進行封裝的包 ZKClient,當(dāng)前組件也是參考了這個項目。具體組件包提供了什么功能請參考 "提供的功能" 這一節(jié)。
有問題怎么辦?
可以通過以下方式聯(lián)系我(依據(jù)最容易得到處理優(yōu)先級排序):
總結(jié)
以上是生活随笔為你收集整理的支持断线重连、永久watcher、递归操作并且能跨平台(.NET Core)的ZooKeeper异步客户端...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器端与客户端TCP连接入门(三:多线
- 下一篇: asp.net DataGrid Gri