CuratorFramework入门指南

CuratorFramework入门指南

原文地址:https://github.com/Netflix/curator/wiki/Getting-Started

CuratorFramework作为一款优秀的ZooKeeper客户端开源工具,主要提供了对客户端到服务的连接管理和连接重试机制,以及一些扩展功能。下面是博主翻译的CuratorFramework wiki上面的文档,水平有限仅共初学者参考。

使用Curator:

� � �� Curator的jar包在Maven仓库中心是可以找到,不同的版本这里有列表:https://github.com/Netflix/curator/wiki ,使用Maven,Gradle,Ant等可以很轻松简单的将Curator包含到项目当中。

� � � 很多用户会想要使用Curtor预编译的一些工具,所以Curator提供了curator-recipes,如果你仅仅想使用Zooeeper的简单包装,包括链接管理和重试机制,那么使用curator-framework就足够了。

获取一个链接:

Curator使用Fluent风格,如果在此之前你没有接触过Fluent风格,那么对你来说Curator的Code看起来会有点奇怪,因此建议你最好先熟悉一下Fluent风格。 Curator链接实例(CuratorFramework)由CuratorFrameworkFactory获取,对于一个Zk集群,仅仅需要一个CuratorFramework实例:

CuratorFrameworkFactory.newClient(zookeeperConnectionString, retryPolicy)

这将会使用默认的值创建一个到ZK集群的链接,唯一需要特别指定单参数是重试机制,从例子上看,你需要使用:

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

获得到的CuratorFramework实例在使用之前需要调用其start方法,在不许要使用的时候需要调用close方法。

直接调用ZooK eepe r:

一旦你拥有了CuratorFramework实例,你可以直接调用Zookeeper,这类似ZK发布版本中提供的原生的ZooKeeper对象,

client.create().forPath("/my/path", myData)

使用Curator的好处是Curator帮助我们管理客户端到ZK的链接,并且在出现网络链接的问题的时候将会执行指定的重试机制。

 

Curator提供的Recipes:

1,分布式锁
InterProcessMutex lock = new InterProcessMutex(client, lockPath); 
if ( lock.acquire(maxWait, waitUnit) ) 
{ 
try { // do some work inside of the critical section here } finally { lock.release(); } }
2,领导者选举
LeaderSelectorListener listener = new LeaderSelectorListener()
{
 public void takeLeadership(CuratorFramework client) throws Exception {
//这个方法将会在当前节点处于Leader角色的时候调用 } public void stateChanged(CuratorFramework client, ConnectionState newState){ //当到ZK的连接断开的时候会回调该方法 } } LeaderSelector selector = new LeaderSelector(client, path, listener); selector.autoRequeue(); // not required, but this is behavior that you will probably expect selector.start(); 

Curator的使用实例:

https://github.com/Netflix/curator/tree/master/curator-examples/src/main/java

 

转载于:https://www.cnblogs.com/lexiaofei76/p/5269354.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值