学习 ZooKeeper API 库 Curator(一):开始

简介

Apache Curator 是 ZooKeeper API 高级封装库。包含了以下组件:

  • Recipes 常用的 ZooKeeper 原语
  • Framework ZooKeeper 高级 API
  • Utilities 工具类
  • Client ZooKeeper 客户端
  • Errors 错误处理
  • Extensions 扩展

依赖

<dependency>  
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
</dependency>  
<dependency>  
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
</dependency>  
<dependency>  
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-client</artifactId>
</dependency>  

注意:2.X.X 版本兼容 ZooKeeper 3.4.X 和 ZooKeeper 3.5.X,3.X.X 版本仅兼容 ZooKeeper 3.5.X。

客户端

RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);  
CuratorFramework client = CuratorFrameworkFactory.newClient("127.0.0.1", retryPolicy);  
client.start();  
// do something
client.close();  

Curator 提供了工厂类 CuratorFramework 创建 CuratorFramework 实例。

多个 ZooKeeper 服务地址使用逗号分隔,不指定端口默认使用 2181 端口。

Curator 提供了多种服务连接重试策略,可根据需要进行选择:

  • ExponentialBackoffRetry 重试若干次,每次之间休息一段时间
  • RetryNTimes 最多重试 N 次
  • RetryOneTime 重试一次
  • RetryUntilElapsed 在给定时间内不断重试