一、Curator使用:如何开始使用及api介绍(创建会话以及增删查改)
2021-01-29 10:14
标签:over 分布式锁 count sys tst fixed str math src 记录下ZK客户端的使用学习,初步想法是从几个方面来记录 zk版本: 1.创建会话 说一下retryPolicy,重连策略,建议用其中两种 namespace代表命名空间,注意的是,curator会自动创建。 3.创建临时节点 4.删除节点 5.读数据 6.更新数据 一、Curator使用:如何开始使用及api介绍(创建会话以及增删查改) 标签:over 分布式锁 count sys tst fixed str math src 原文地址:https://www.cnblogs.com/june777/p/11865116.html前言
版本说明
curator版本:
常用API介绍
CuratorFramework cc = CuratorFrameworkFactory.builder()
.connectString("ip:port")
.sessionTimeoutMs(2000)
.connectionTimeoutMs(5000)
.retryPolicy(new ExponentialBackoffRetry(1000,3))
.namespace("test")
.build();
cc.start();
//重连3次,每次休息3秒
new RetryNTimes(3,3000);
//重连3次,每次休息大约是1秒
new ExponentialBackoffRetry(1000,3);
//初始化一个大概的等待时间1秒,然后开始重连,最多重连3次,每次最多休息2秒
new ExponentialBackoffRetry(1000,3,2000);
//计算通过这个初始化的大约时间,计算实际需要睡眠多久
long sleepMs = baseSleepTimeMs * Math.max(1, random.nextInt(1
2.创建普通节点 cc.create().forPath("/comm_msg_nd","ctx".getBytes());
cc.create().forPath("/comm_no_msg_nd");
需要注意的是,如果没有值,会默认把当前ip地址放进去 return InetAddress.getLocalHost().getHostAddress().getBytes();
cc.create().withMode(CreateMode.EPHEMERAL).forPath("/ephe_nd","ff".getBytes());
//creatingParentsIfNeeded会自动创建父节点
cc.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL).forPath("/ephe_nd","ff".getBytes());
需要注意,只有叶节点可以做临时节点,所以叶节点的父节点必须是永久节点,也就是creatingParentsIfNeeded这个方法创建的父节点必须是永久节点 //删除单独一个节点
cc.delete().forPath("/comm_msg_nd");
//删除多级节点
cc.create().creatingParentsIfNeeded().forPath("/p1/p2/p3/multi_nd");
cc.delete().deletingChildrenIfNeeded().forPath("/p1");
//删除指定版本的节点
cc.delete().withVersion(0).forPath("/comm_msg_nd");
//保证删除,失败后继续执行
cc.delete().guaranteed().forPath("/comm_msg_nd");
//通过添加错误的回调方法来实现,错误后继续执行
OperationAndData.ErrorCallback
Stat stat = new Stat();
byte[] ctx = cc.getData().storingStatIn(stat).forPath("/comm_msg_nd");
//获取节点内容为ctx
System.out.println(new String(ctx));
//获取该节点stat
//78,78,1573789366124,1573789366124,0,0,0,0,3,0,78
System.out.println(stat);
Stat stat = new Stat();
stat = cc.setData().forPath("/comm_msg_nd","new ctx".getBytes());
System.out.println(stat);
文章标题:一、Curator使用:如何开始使用及api介绍(创建会话以及增删查改)
文章链接:http://soscw.com/essay/48636.html