curator 入门
http://curator.apache.org/getting-started.html
学习ZooKeeper
http: //zookeeper.apache.org/doc/trunk/zookeeperStarted.html
使用curator
curator的JAR包可从Maven Central获得。Maven,Gradle,Ant等的用户可以轻松地将curator包含在他们的构建脚本中。
Maven
1 | <dependency> |
获得连接
curator使用 Fluent Style 风格的API。
curator连接实例(CuratorFramework)由CuratorFrameworkFactory分配。要连接到的ZooKeeper群集只需要 一个 CuratorFramework对象:
1 | CuratorFrameworkFactory.newClient(zookeeperConnectionString, retryPolicy) |
使用默认值创建与ZooKeeper群集的连接,唯一需要指定的是重试策略。在大多数情况下,应该使用:
1 | RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3) |
必须启动客户端(不再需要时关闭)。
直接使用ZooKeeper
一旦有一个CuratorFramework实例,就可以直接调用ZooKeeper,方法与使用ZooKeeper发行版中提供的原始ZooKeeper对象类似。例如:
1 | client.create().forPath("/my/path", myData) |
这里的好处是curator管理ZooKeeper连接,如果有连接问题,将重试操作。
食谱 Recipes
分布式锁
1 | InterProcessMutex lock = new InterProcessMutex(client, lockPath); |
领导选举
1 | LeaderSelectorListener listener = new LeaderSelectorListenerAdapter() |