Zookeeper 客戶端框架 Curator-Framework 來自Netflix公司,現在歸Apache,目前版本2.0.1!
在使用ZK開發時會遇到讓人頭疼的幾個問題,ZK連接管理、SESSION失效等一些異常問題的處理,Curator替我們解決了這些問題,通過對ZK連接狀態的監控來做出相應的重連等操作,並觸發事件!
更好的地方是Curator對ZK的一些應用場景提供了非常好的實現,而且有很多擴充,這些都符合ZK使用規范。
主要組件
- Recipes, ZooKeeper的系列recipe實現, 基於 Curator Framework.
- Framework, 封裝了大量ZooKeeper常用API操作,降低了使用難度, 基於Zookeeper增加了一些新特性,對ZooKeeper鏈接的管理,對鏈接丟失自動重新鏈接。
- Utilities,一些ZooKeeper操作的工具類包括ZK的集群測試工具路徑生成等非常有用,在Curator-Client包下org.apache.curator.utils。
- Client,ZooKeeper的客戶端API封裝,替代官方 ZooKeeper class,解決了一些繁瑣低級的處理,提供一些工具類。
- Errors,異常處理, 連接異常等
- Extensions,對curator-recipes的擴展實現,拆分為curator-x-discovery和curator-x-discovery-server提供基於RESTful的Recipes WEB服務.
其中Curator-Recipes包括有Elections(領導選舉)、Locks(鎖)、Queues(隊列)、Barriers(屏障)、Counters(共享計數器)、Caches(狀態管理,可用做配置管理、緩存等)
實踐
官方提供學習實例curator-examples,可通過Maven下載,curator系列Maven地址 maven:org.apache.curator
本人基於Curator做幾個常用場景的開發實例以供大家參考