Apache Curator
Curator(馆长) VS. ZooKeeper(动物园管理员) ???🐒 🐵 🙈
🙉起名字真好玩。🙊 我猜是要管理动物园管理员?
1. 优点
- 封装ZooKeeper client与ZooKeeper server之间的连接处理。
- 提供了一套Fluent风格的操作API。
- 提供ZooKeeper各种应用场景(recipe, 比如共享锁服务, 集群领导选举机制)的抽象封装。
2. 组成部分
- Client:Zookeeper客户端(ZooKeeper类)的替代品,提供一些非常有用的客户端特性。
- Framework:用来简化Zookeeper高级功能的使用(Zookeeper API的高层封装),并增加了一些新功能,比如连接管理(管理到Zookeeper集群的连接),重试处理。
- Recipes:Zookeeper典型应用场景的实现,基于Curator Framework。
- Utilities:各种ZK的工具。
- Errors:Curator异常处理,连接,恢复等。
- Extensions:recipes的扩展。
3. 版本问题
目前Curator有2.x.x和3.x.x两个系列的版本,支持不同版本的Zookeeper。其中Curator 2.x.x兼容Zookeeper的3.4.x和3.5.x。而Curator 3.x.x只兼容Zookeeper 3.5.x,并且提供了一些诸如动态重新配置、watch删除等新特性。
具体在curator官网有介绍。
<!-- 只需要导入这个依赖 就会自动导入其他依赖 -->
<!-- All of the recipes listed on the ZooKeeper recipes doc (except two phase commit). -->
<!-- 封装了一些高级特性,如:Cache事件监听、选举、分布式锁、分布式计数器、分布式Barrier等 -->
<dependency>
<groupId>org.apache.curator</groupId