美文网首页
zkClient操作

zkClient操作

作者: 先生_吕 | 来源:发表于2017-05-26 17:07 被阅读340次

    zkClient在原生API的基础上进行了封装,简化了zookeeper的复杂性。

    另外可以参照:http://www.cnblogs.com/shengkejava/p/5633801.html

    创建客户端方法:ZKClient(Arguments)
    参数1:zkServers,zookeeper服务器地址,用“,”分隔。
    参数2:sessionTimeout,会话超时时间,单位毫秒,默认为30000ms。
    参数3:connectionTimeout,连接超时时间。
    参数4:IZkConnection接口的实现类。
    参数5:zkSerializer,自定义序列化实现。

    注意:出来添加zookeeper的包还有引入zkClient的包

    【代码】

    import org.I0Itec.zkclient.ZkClient;
    import org.I0Itec.zkclient.ZkConnection;
    import org.apache.zookeeper.CreateMode;
    
    /**
     * 
     * @author lvfang
     * 
     * 
     *    zkClient在原生API的基础上进行了封装,简化了zookeeper的复杂性。
     *    不要开发者自己手动创建watcher
     * 
     */
    public class ZkClientTest {
    
        // zookeeper地址
        static final String CONNECT_ARRD = "192.168.1.201:2181";
        // 超时时间
        static final int SESSION_OUTTIME = 5000;
    
        public static void main(String[] args) {
    
            ZkClient zkClient = new ZkClient(new ZkConnection(CONNECT_ARRD),SESSION_OUTTIME);
    
            /**
             * 添加
             */
            zkClient.create("/testZkclient", "zkclient_Test", CreateMode.EPHEMERAL);
            zkClient.createPersistent("/testZkclient/aaa");// 持久化节点创建(递归创建)
            zkClient.createEphemeral("");// 临时节点创建
    
            /**
             * 删除
             */
            zkClient.delete("/testZkclient");// 删除节点
            zkClient.deleteRecursive("/testZkclient");// 递归删除
    
            /**
             * 修改节点数据
             */
            zkClient.writeData("/super/c1", "新内容"); // 修改指定节点的值 (写数据)
            System.out.println(zkClient.readData("/super/c1"));// 读数据
    
            /**
             * 是否存在
             */
            System.out.println(zkClient.exists("/super/c1")); // 判断指定节点是否存在
    
            
            /**
             * 设置path和data,并读取子节点和每个节点的内容  
             */
            zkClient.createPersistent("/super", "1234"); // 创建并设置节点的值
            zkClient.createPersistent("/super/c1", "内容一");
            zkClient.createPersistent("/super/c2", "内容二");
            List<String> children = zkClient.getChildren("/super");
            for (String child : children) {
                System.out.print(child + ":");
                String childPath = "/super/" + child;
                String data = zkClient.readData(childPath); // 读取指定节点的值
                System.out.println(data);
            }
    
            zkClient.close();
        }
    }
    
    

    相关文章

      网友评论

          本文标题:zkClient操作

          本文链接:https://www.haomeiwen.com/subject/dyexfxtx.html