zkClient操作

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();
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,384评论 19 139
  • 本文将从系统模型、序列化与协议、客户端工作原理、会话、服务端工作原理以及数据存储等方面来揭示ZooKeeper的技...
    端木轩阅读 9,212评论 0 42
  • 摘要 本节讲解会话,会话状态以及会话的创建,针对源码SessionTrackerImp进行展开,主要讲解 会话 客...
    赤子心_d709阅读 5,809评论 0 2
  • 臧克家在纪念鲁迅有感的散文里写着: 有的人活着 他已经死了; 有的人死了 他还活着. 《死亡诗社》的影评有许多争议...
    月嵐阅读 4,963评论 0 2
  • 24个比利有24张面孔 每一个比利都真实 比利轮流换好出门的衣服 高跟鞋、烟斗或不离手的玩偶 还要搭配好长裙或斗篷...
    哒哒娃阅读 1,625评论 2 3