前面简单研究了curator的使用,下面简单研究zkclient的使用。

1.创建连接

    private static final String CONNECT_ADDR = "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183";

    private static ZkClient geneClient() {
return new ZkClient(new ZkConnection(CONNECT_ADDR), 10000);
}

创建客户端的方法: ZKClient(Arguments)
参数1:zkServer zookeeper服务器的地址,用","分割
参数2:sessionTimeout超时回话,为毫秒,默认是30000ms
参数3:connectionTimeOut 连接超时会话
参数4:IZKConnection接口的实现类
参数5:zkSerializer 兹定于序列化实现

2.简单操作

1.创建节点

  可以递归创建节点,只不过递归创建的节点值为空。

        // 创建节点
geneClient.create("/test1", "sssss", CreateMode.PERSISTENT);
// 递归创建节点,只是节点的值为空
geneClient.createPersistent("/test2/t22", true);

结果

创建方法如下:

2.删除节点

  可以递归删除节点。

        boolean delete = geneClient.delete("/test1");
// 递归删除
boolean deleteRecursive = geneClient.deleteRecursive("/test2");

3.获取节点内容和遍历子节点

        Object readData = geneClient.readData("/test1");
System.out.println(readData); List<String> list = geneClient.getChildren("/test2");
for (String p : list) {
System.out.println(p);
String rp = "/test2/" + p;
String data = geneClient.readData(rp);
System.out.println("节点为:" + rp + ",内容为: " + data);
}

4.判断节点是否存在

    boolean exists = geneClient.exists("/test1");
System.out.println(exists);

5.修改节点

        Stat writeData = geneClient.writeData("/test1", "cccc");
System.out.println(writeData);
System.out.println(geneClient.readData("/test1"));

3.监听节点

1.监听节点变化

        geneClient.subscribeDataChanges("/test1", new IZkDataListener() {

            @Override
public void handleDataDeleted(String dataPath) throws Exception {
System.out.println("节点被删除");
} @Override
public void handleDataChange(String dataPath, Object data) throws Exception {
System.out.println(dataPath + "\t" + data);
}
});

2.监听子节点变化(只能监听字节点,子孙节点无效)

        geneClient.subscribeChildChanges("/test1", new IZkChildListener() {
@Override
public void handleChildChange(String parentPath, List<String> currentChilds) throws Exception {
System.out.println(parentPath+"\t");
for(String s:currentChilds){
System.out.println(s);
}
}
});

ZKClient操作zookeeper的更多相关文章

  1. Java 使用ZkClient操作Zookeeper

    目录 ZkClient介绍 导入jar包依赖 简单使用样例 ZkClient介绍 因为Zookeeper API比较复杂,使用并不方便,所以出现了ZkClient,ZkClient对Zookeeper ...

  2. curator框架的使用以及实现分布式锁等应用与zkclient操作zookeeper,简化复杂原生API

    打开zookeeper集群 先体会一下原生API有多麻烦(可略过): //地址 static final String ADDR = "192.168.171.128:2181,192.16 ...

  3. Java操作zookeeper

    Java操作zookeeper总共有三种方式: 1.原生的Java API 2.zkclient 3.curator 第一种实现代码: pom.xml <dependency> <g ...

  4. Java代码操作zookeeper

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  5. Java curator操作zookeeper获取kafka

    Java curator操作zookeeper获取kafka Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更 ...

  6. [py]python操作zookeeper

    参考: https://blog.csdn.net/heizistudio/article/details/79568188 1.安装zookeeper zookeeper-3.4.6.tar.gz ...

  7. 使用Curator操作ZooKeeper

    Curator是Netflix公司开源的一个ZooKeeper client library,用于简化ZooKeeper客户端编程.它包含如下模块: Framework:Framework是ZooKe ...

  8. java 操作zookeeper

    java 操作zookeeper(一) 首先要使用java操作zookeeper,zookeeper的javaclient 使我们更轻松的去对zookeeper进行各种操作,我们引入zookeeper ...

  9. Zookeeper--java操作zookeeper

    如果是使用java操作zookeeper,zookeeper的javaclient 使我们更轻松的去对zookeeper进行各种操作,我们引入zookeeper-3.4.5.jar 和 zkclien ...

随机推荐

  1. Luogu P4248 [AHOI2013]差异

    题目链接 \(Click\) \(Here\) 神仙题.或者可能我太菜了没见过后缀数组的骚操作,然后就被秀了一脸\(hhhhh\) \[\sum\limits_{1<=i < j < ...

  2. Emgu.CV 播放视频-本地文件/RTSP流

    using Emgu.CV; using System; using System.Drawing; using System.Threading; using System.Windows.Form ...

  3. maven编译或者打包web项目显示“软件包 javax.servlet.http 不存在"

    2.解决办法: 这是由于缺少servlet-api.jar包,其实tomcat下有,但是在java build path把他加载过来,还是报这个错误,所以我们直接在pom.xml里面加入这个jar包即 ...

  4. MySQL5.7单实例二进制包安装方法

    MySQL5.7单实例二进制包安装方法 一.环境 OS: CentOS release 6.9 (Final)MySQL: mysql-5.7.20-linux-glibc2.12-x86_64.ta ...

  5. CSS设置边框、符号、背景样式、链接属性

    一.CSS边框空白 padding-top:10px; /*上边框留空白*/ padding-right:10px; /*右边框留空白*/ padding-bottom:10px; /*下边框留空白* ...

  6. HBase基础之常用过滤器hbase shell操作(转)

    创建表 create 'test1', 'lf', 'sf' lf: column family of LONG values (binary value)-- sf: column family o ...

  7. Kafka技术内幕 读书笔记之(六) 存储层——服务端处理读写请求、分区与副本

    如下图中分区到 日 志的虚线表示 : 业务逻辑层的一个分区对应物理存储层的一个日志 . 消息集到数据文件的虚线表示 : 客户端发送的消息集最终会写入日志分段对应的数据文件,存储到Kafka的消息代理节 ...

  8. ubuntu 配置minicom 进行串口开发

    sudo apt-get install minicom        sudo minicom -s        Serial port setup        Save  setup as d ...

  9. MY服务器架设

    研究了一天,终于弄出来了,进游戏耍了会,感觉不错,下面分享架设步骤给大家 分享端的大大也出了个虚拟机运行需要注意的视频,大家看看吧,我就这样弄架设成功了 链接:链接: http://pan.baidu ...

  10. http 动态路由

    main.go package main import ( "fmt" "http2/comm" "http2/test" "ne ...