20190901 笔记 Zookeeper

20190901 笔记

 

Zookeeper API

 

添加zk依赖

 

 

 

 

 

这个写法是为了 优雅的连接 zk, 当连接上是

countdownlatch -1, 为0

当连接状态为 connected, 才往下走

 

 

 

 

 

创建临时节点:

String zknode = zk.create("/zk-test-eph", "1".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

logger.warn("创建节点: {}", zknode);

Thread.sleep(10000);

 

 

// 异步创建节点

String ctx = "{'create': 'success'}";

zk.create("/zk-test/eph", "1".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,

CreateMode.EPHEMERAL,

new AsyncCallback.StringCallback() {

@Override

public void processResult(int i, String path, Object ctx, String name) {

logger.warn("创建节点成功: {}",name);

}

}, ctx);

 

 

set操作

Stat stat = zk.setData("/test0901", "data002".getBytes(),-1);

logger.warn("version: {}", ((Stat) stat).getVersion());

 

删除操作

zk.delete("/test0901", -1);

 

获取节点数据

Stat stat = new Stat();

byte[] data = zk.getData("/zookeeper", true, stat);

logger.warn("获取节点数据: {}", new String(data));

logger.warn("节点版本号: {}", stat.getVersion());

 

 

判断节点是否存在

Stat stat = zk.exists("/zookeeper", true);

if(null != stat){

logger.warn("节点存在");

}else{

logger.warn("节点不存在");

}

 

获取子节点

List<String> children = zk.getChildren("/zookeeper", true);

for(String child: children){

logger.warn(child);

}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值