Curator框架的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Curator框架的使用相关的知识,希望对你有一定的参考价值。

Curator框架的目的是减少用户的复杂度,毕竟原生的Zookeeper难以使用。

这里举一个使用例子。

第一步:建立连接

// 以下代码与192.168.1.101:2181建立了连接
CuratorFramework client = CuratorFrameworkFactory.newClient("192.168.1.101:2181", new ExponentialBackoffRetry(1000, 3));
client.start();

这里的ExponentialBackoffRetry的含义是指数增长的重试间隔。根据这里的参数,第一次失败重试休息1000毫秒,第二次重试休息1000毫秒~3000毫秒,第三次失败重试休息1000毫秒~7000毫秒。这样指数增长。

第二步:监听节点下的数据

PathChildrenCache cache = new PathChildrenCache(client, "/test", true);
cache.start();
cache.getListenable().addListener(new MyListener(observer));

这样就可以监听test节点下的所有节点了。

第三步:实现事件处理

实现事件处理,只需实现PathChildrenCacheListener接口即可,示例如下。

public class MyListener implements PathChildrenCacheListener {
  @Override
  public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
    switch (event.getType()) {
      case CHILD_ADDED: {
        // 新的节点创建了
        ...
        break;
      }
      case CHILD_UPDATED: {
        // 节点数据更新了
        ...
        break;
      }
      case CHILD_REMOVED: {
        // 节点删掉了
        ...
        break;
      }
    }
  }
}

以上是关于Curator框架的使用的主要内容,如果未能解决你的问题,请参考以下文章

使用Curator框架实现分布式锁

浅谈Zookeeper开源客户端框架Curator

Curator入门教程1

15. 使用Apache Curator管理ZooKeeper

分布式锁-curator实现

ZooKeeper客户端Curator使用