zookeeper之三 ZKClient客户端的使用


ZKClient在原生API接口上进行了包装,同时在内部实现了诸如session超时重连、watcher反复注册等功能,使得zookeeper客户端繁琐的细节对开发人员透明。下面将从以下几个方面来使用ZKClient这个Zookeeper客户端。

  • 1.创建会话
  • 2.创建节点
  • 3.读取数据
  • 4.更新数据
  • 5.删除节点
  • 6.检查节点是否存在

首先需要加入zkclient的maven依赖

        <!--zkClient-->
        <!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>

 

public class ZKClientDemo {

    //zookeeper地址。集群时使用逗号分隔
    private static final String zkServers = "127.0.0.1:2181";

    public static void main(String[] args) {
        //创建会话
        ZkClient zkClient = new ZkClient(zkServers, 3000);

        //创建节点
        String path = "/mynode";
        String data = "hello";
        //zkClient.createPersistent(path);
        //zkClient.createEphemeral(path);
        zkClient.create(path, data, CreateMode.PERSISTENT);

        System.out.println("是否存在mynode节点:" + zkClient.exists(path));

        //列出根下所有节点
        System.out.println("根下拥有的子节点:" + zkClient.getChildren("/"));

        //读取节点的数据
        System.out.println(zkClient.readData(path));

        //修改节点数据
        zkClient.writeData(path, "world");
        System.out.println(zkClient.readData(path));

        //删除节点
        zkClient.delete(path);
        //zkClient.delete(path, 1);//删除指定版本号的节点
        //zkClient.deleteRecursive(path);//级联删除所有子节点

        System.out.println("删除节点后:" + zkClient.getChildren("/"));

        //关闭客户端连接
        if (zkClient != null) {
            zkClient.close();
        }
    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM