1 Curator主要解决了三类问题:
1 封装ZooKeeper client与ZooKeeper server之间的连接处理;
2提供了一套Fluent风格的操作API;
3 提供ZooKeeper各种应用场景(recipe, 比如共享锁服务, 集群领导选举机制)的抽象封装.
2 Curator文件夹(组件):
2.1 Recipes
Implementations of some of the common ZooKeeper"recipes". The implementations are built on top of the CuratorFramework.
构建在Curator Framework框架之上,实现了原生ZooKeeper中的分布式工具特征recipes。分布式锁,分布式队列,leader选举等。
2.2 Framework
The Curator Framework is a high-level API thatgreatly simplifies using ZooKeeper. It adds many features that build onZooKeeper and handles the complexity
of managing connections to the ZooKeepercluster and retrying operations.
提供高层抽象API简化ZooKeeper的使用,更重要的是封装了管理到ZooKeeper集群的连接以及重试机制的复杂性,是Curator对外提供的接口。
Various utilities that are useful when usingZooKeeper.
一些使用ZooKeeper过程中有用的工具。
2.3 Client
A replacement for the bundled ZooKeeper class that takes care ofsome low-level housekeeping and provides some useful utilities.
替换原生ZooKeeper类,封装操作原生ZooKeeper的底层细节,主要包括前面说的实现了复杂的到ZooKeeper集群的连接以及重试机制。
2.4 x-async
Curator Async是包装现有CuratorFramework实例的DSL。该DSL完全是异步的,并使用Java 8的CompletionStage机制进行链接,合成等。此外,Curator的原始DSL已被清理和简化,尤其是对于诸如create()之类的操作。
使用此DSL,您可以使用Java 8 lambdas以更自然,更实用的方式执行异步任务。
Curator异步包还包含一个强类型的DSL和强类型的“高速缓存食谱”包装器,它们使您可以将ZooKeeper路径映射到可序列化的类,而不是原始字节数组。
http://curator.apache.org/curator-x-async/index.html
2.5 x-discovery
在SOA /分布式系统中,服务需要相互发现。例如,一个Web服务可能需要找到一个缓存服务,等等。DNS可以用于此目的,但是对于不断变化的服务而言,它还远远不够灵活。服务发现系统提供了以下机制:
服务以记录其可用性
查找特定服务的单个实例
通知服务实例何时更改
http://curator.apache.org/curator-x-discovery/index.html
2.6 x-discovery-service
服务发现服务器将非Java或旧式应用程序与Curator Service Discovery桥接。它公开了RESTful Web服务以注册,删除,查询等服务。
服务发现服务器提供了JAX-RS组件,可以将其合并到您选择的容器(Tomcat,Jetty等)中。您还可以选择任何JAX-RS提供程序(Jersey,RESTEasy等)
http://curator.apache.org/curator-x-discovery-server/index.html