package com.xzk.zk;
import org.apache.zookeeper.*;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
public class ZkExample01 {
private static final String connectString = "127.0.0.1:2181";
private static final int sessionTimeout = 5000;
private static final CountDownLatch countDownLatch = new CountDownLatch(1);
public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
ZooKeeper zk = new ZooKeeper(connectString, sessionTimeout, new Watcher() {
public void process(WatchedEvent watchedEvent) {
//获取与zk服务器连接的状态信息
Event.KeeperState keeperState = watchedEvent.getState();
//获取事件类型
Event.EventType type = watchedEvent.getType();
////如果是建立连接状态
if(Event.KeeperState.SyncConnected == keeperState){
if(Event.EventType.None == type){
//如果建立连接成功,则发送信号量,让后续阻塞的程序继续向下执行
countDownLatch.countDown();
out("zk---->建立连接成功");
}
}
}
});
//进行阻塞
countDownLatch.await();
//创建持久节点
zk.create("/zxExample03","2340".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
out("创建zxExample01节点--->成功");
//获取该节点所存储的值
byte[] data = zk.getData("/zxExample03",false,null);
out("获取节点zxExample03的值--->"+new String(data));
//修改节点的值,-1表示跳过版本检查,其他正数表示如果传入的版本号与当前版本号不一致,则修改不成功,删除是同样的道理。
zk.setData("/zxExample03", "2341change".getBytes(), -1);
byte[] data1 = zk.getData("/zxExample03", false, null);
out("获取节点zxExample03的值--->"+new String(data1));
//判断节点是否存在
out("判断节点zxExample03是否存在--->"+zk.exists("/zxExample03", false));
//删除节点
//zk.delete("/zxExample03", -1);
//out(zk.exists("/zxExample03", false));
//释放资源
zk.close();
}
public static void out(Object o){
System.out.println(o);
}
}
JAVA操作zookeeper(精简篇)
ZooKeeper 示例程序
最新推荐文章于 2024-08-26 00:11:17 发布
本文介绍了一个使用 Java 编写的 ZooKeeper 示例程序,演示了如何建立连接、创建持久节点、获取节点数据、更新节点值及判断节点是否存在等基本操作。

1001

被折叠的 条评论
为什么被折叠?



