ZooKeeper——开源客户端Curator

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/uk8692/article/details/88747342

Curator是Netflix公司开源的一套ZooKeeper客户端框架,作者是Jordan Zimmerman。和ZkClient一样,Curator解决了很多ZooKeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等,目前已经成为了Apache的顶级项目。Patrick Hunt(ZooKeeper代码的核心提交者)以一句“Guava is to Java what Curator is to ZooKeeper”对其进行了高度评价。
除此之外,Curator中还提供了ZooKeeper各种应用场景(Recipe,如共享锁服务、Master选举几种和分布式计数器等)的抽象封装。
首先看一下Curator的Maven依赖:

<dependency>
			<groupId>org.apache.curator</groupId>
			<artifactId>curator-framework</artifactId>
			<version>2.5.0</version>
		</dependency>

这里我们加入依赖curator-recipes,因为它也包含了curator-framework:

<dependency>
			<groupId>org.apache.curator</groupId>
			<artifactId>curator-recipes</artifactId>
			<version>2.5.0</version>
</dependency>

创建会话
1.使用CuratorFrameworkFactory这个工厂类的两个静态方法来创建一个客户端:

public static CuratorFramework newClient(String connectString, RetryPolicy retryPolicy)
public static CuratorFramework newClient(String connectString, int sessionTimeoutMs, int connectionTimeoutMs, RetryPolicy retryPolicy)

也可以自己调用Fluent风格的API来创建:

CuratorFramework client = CuratorFrameworkFactory.builder()
				.connectString("127.0.0.1:2181")
				.retryPolicy(new ExponentialBackoffRetry(1000, 3))
				.build();

效果是一样的,因为第一种方式的内部也是调用了第二种的方法。

2.通过CuratorFramework中的start()方法来启动会话。

猜你喜欢

转载自blog.csdn.net/uk8692/article/details/88747342