Curator-入门和介绍(一)

摘要

Curator是Netfix公司开源的一款zookeeper客户端,弥补了原生客户端的许多不足,简化zookeeper的操作,而且增加了连接管理和重试机制,并采用Fluent风格的API接口。

目前已经成为Apache的顶级项目,http://curator.apache.org/

原Netflix地址:https://github.com/Netflix/curator

Patrick Hunt说的这句话,很形象。

组件

Curator的库已经都发布到maven的中央仓库了,包含有好几个坐标,但是大多数用户用

curator-recipes一个就够了。

ArtifactID/Name Description
curator-recipes 包含所有的recipes,这包是依赖client和framework的,所以只要用这个,会自动依赖client和framework
curator-async 异步DSL与O / R建模,迁移和许多其他功能。
curator-framework 提供高级的API,依赖client
curator-client Curator客户端,替换原生的Zookeeper类
curator-test 测试包,TestingServer, TestingCluster,还有其他有用的工具,方便测试
curator-examples 各种例子
curator-x-discovery 用Curator Framework实现的服务发现
curator-x-discovery-server Restfull的接口,可以操作Curator Discovery

与zookeeper版本的兼容性

一般的如果用Curator,最好用Zookeeper 3.5+版本,如果是3.4.x版本,你需要在上面排除掉zookeeper,并且显示的应用3.4.x的zookeeper的坐标。

zookeeper的安装

比较简单,略…

本地安装,后面及例子中默认zk地址:127.0.0.1:2181

开始使用

Curator用的Fluent Style,Curator连接实例CuratorFramework 可以通过CuratorFrameworkFactory获取,一个集群只需要一个实例就可以。

1
CuratorFrameworkFactory.newClient(zookeeperConnectionString, retryPolicy)

最简单的

1
2
3
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3)
CuratorFramework client = CuratorFrameworkFactory.newClient(zookeeperConnectionString, retryPolicy);
client.start();

除了定义一个RetryPolicy,重试策略,其他的都是默认值。

client调用start启动,不用的时候要调用close关闭。

坚持技术分享,您的支持将鼓励我继续创作!