初步认识zookeeper(3)--JavaAPI操作节点(增删改查)

目录概要

  • 初始化连接
  • 增加节点
  • 查询节点
  • 修改节点
  • 删除节点

直接干代码,引入pom依赖

<dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
      <version>3.4.10</version>
</dependency>

1、初始化zookeeper连接

 final CountDownLatch countDownLatch = new CountDownLatch(1);
 			 //若是集群的话,用,号隔开如:192.168.137.128:2181,192.168.137.129:2181,192.168.137.130:2181
            ZooKeeper zooKeeper = new ZooKeeper("192.168.137.128:2181"
                    , 4000, new Watcher() {
                @Override
                public void process(WatchedEvent watchedEvent) {
                    System.out.println("事件:"+watchedEvent.getType());
                    //连接成功
                    if (watchedEvent.getState() == Event.KeeperState.SyncConnected) {
                        countDownLatch.countDown();
                    }
                }
            });
            System.out.println("1"+zooKeeper.getState());
            countDownLatch.await();
            System.out.println(zooKeeper.getState());

结果如下:
在这里插入图片描述
2、增加节点

zooKeeper.create("/ws","gg".getBytes(),
                    ZooDefs.Ids.OPEN_ACL_UNSAFE,
                    CreateMode.PERSISTENT);//CreateMode.PERSISTENT持久化

参数说明:

参数 描述
/ws 节点路径 (当前节点不存在的话,不可以创建子节点)
“gg”.getBytes() 节点内容
ZooDefs.Ids.属性 OPEN_ACL_UNSAFE(完全开放的ACL权限,都可以操作节点)
CREATOR_ALL_ACL :(只有创建者才有ACL权限)
READ_ACL_UNSAFE:(只能读取ACL)
CreateMode.类型 PERSISTENT(持久化节点)
PERSISTENT_SEQUENTIAL(持久化有序节点)
EPHEMERAL(临时节点)
EPHEMERAL_SEQUENTIAL(临时有序节点)

3、查询节点

 //查询节点
            Stat stat = new Stat();
            byte[] bye = zooKeeper.getData("/ws",true,stat);
            System.out.println("查询出的节点内容:" +new String(bye));

注意:stat中包含节点的版本信息,修改或删除时需要版本信息

4、修改节点

//修改节点
            stat = zooKeeper.setData("/ws","gg2".getBytes(), stat.getVersion());

5、删除节点

//删除节点
            zooKeeper.delete("/ws",stat.getVersion());

6、最后关闭zookeeper连接

zooKeeper.close();
发布了20 篇原创文章 · 获赞 32 · 访问量 5600

猜你喜欢

转载自blog.csdn.net/shuai8624/article/details/96770428
今日推荐