Curator client使用底层的API, 强烈推荐你是用Curator Framework代替使用CuratorZookeeperClient
Apache Curator Utilities
Curator提供了一组工具类和方法用来测试基于Curator的应用。 并且提供了操作ZNode辅助类以及其它一些数据结构
Apache Curator Framework
Curator framework提供了高级API, 极大的简化了ZooKeeper的使用。 它在ZooKeeper基础上增加了很多特性,可以管理与ZOoKeeper的连接和重试机制。这些特性包括:
- 自动连接管理
** 有些潜在的错误情况需要让ZooKeeper client重建连接和重试。Curator可以自动地和透明地处理这些情况 - Cleaner API
简化原始的ZooKeeper方法,事件等 提供现代的流式接口 - 技巧(Recipe)实现
Leader选举 共享锁
Path缓存和监控 分布式队列
分布式优先级队列 ...
Apache Curator Recipes
Curator实现了 ZooKeeper recipes文档中列出的所有技巧(除了两段提交two phase commit)。点击下面的技巧的名字可以查看详细信息。
Elections
Leader Latch - 在分布式计算中, leader选举是在几台节点中指派单一的进程作为任务组织者的过程。在任务开始前, 所有的网络节点都不知道哪一个节点会作为任务的leader或coordinator. 一旦leader选举算法被执行, 网络中的每个节点都将知道一个特别的唯一的节点作为任务leader.
Leader Election - 初始的leader选举实现.
Apache Curator 入门
学习ZooKeeper
Curator的用户应当了解ZooKeeper。 推荐一排年文章可以学习ZooKeeper: ZooKeeper入门。
使用Curator
Curator的类库可以从Maven仓库中获取。上一篇文章已经介绍了它的相关组件。无论你使用Maven, Gradle还是 Ant都可以很容易的将curator包含到你的编译脚本中。
大部分用户都想使用curator预置的技巧(解决方案),所以你需要加上curator-recipes
依赖。如果你想包装ZOoKeeper增加连接管理重试机制等, 加上 curator-framework
依赖。
Apache Curator 简介
Curator提供了一套Java类库, 可以更容易的使用ZooKeeper。 ZooKeeper本身提供了Java Client的访问类,但是API太底层,不宜使用, 容易出错。 Curator提供了三个组件。 Curator client用来替代ZOoKeeper提供的类, 它封装了底层的管理并提供了一些有用的工具。Curator framework提供了高级的API来简化ZooKeeper的使用。它增加了很多基于ZooKeeper的特性,帮助管理ZooKeeper的连接以及重试操作。Curator Recipes提供了使用ZooKeeper的一些通用的技巧(方法)。 除此之外, Curator Test提供了基于ZooKeeper的单元测试工具。
所谓技巧(Recipes),也可以称之为解决方案, 或者叫实现方案, 是指ZooKeeper的使用方法, 比如分布式的配置管理, Leader选举等。
Curator最初由Netflix的Jordan Zimmerman开发。20117月在github上基于Apache 2.0开源协议开源。 之后发布了多个版本,并被广泛的应用。
Curator作为Apache ZooKeeper天生配套的组件。ZooKeeper的Java开发者自然而然的会选择它在项目中使用。