前面简单研究了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. opencv: 排序

    opencv提供了排序函数:  sort和sorIdx , 其中sortIdx可以获取排序后的序号,比较方便: sortIdx原型: C++: void sortIdx(InputArray src, ...

  2. Intellij Idea识别Java Web项目

    使用maven生成一个Java项目,手动添加相应的web目录WEB_INF,web.xml等,此时idea没有自动识别为web项目,此时编辑web.xml文件会出现一些不该出现的错误,需要做的就是让i ...

  3. Centos 7最小化InfluxDB部署

    配置源 [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com ...

  4. HTML5 accesskey的用法

    <button onclick="start()" accesskey="s">开始</button> <button oncli ...

  5. centos6.5mini版安装及配置

    1.安装选择界面,这个选第一个 2.镜像完整性检查,一般都是跳过SKIP 3.欢迎界面,进入安装了 4.语言选择,这个是没有中文的,用默认的英文就行 5.键盘布局,用默认的us 6.这里会给一个警告, ...

  6. 在Java中如何高效的判断数组中是否包含某个元素

    原文出处: hollischuang(@Hollis_Chuang) 如何检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作.同时,这个问题在Stack Ove ...

  7. python读取wav文件并播放[pyaudio/wave]

    #!/usr/bin/python # encoding:utf-8 import pyaudio import wave CHUNK = 1024 # 从目录中读取语音 wf = wave.open ...

  8. 【概括】C++11/14特性

    c++11 c++14

  9. Golang入门教程(十)内建函数

    比较常用的内建函数 参考: http://blog.csdn.net/liumiaocn/article/details/54804074

  10. 015、调试Dockerfile(2019-01-04 周五)

    参考https://www.cnblogs.com/CloudMan6/p/6853329.html   Dockerfile构建镜像的过程   1.从base镜像运行一个容器 2.执行一条指令,对容 ...