ZKClient操作zookeeper
前面简单研究了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的更多相关文章
- Java 使用ZkClient操作Zookeeper
目录 ZkClient介绍 导入jar包依赖 简单使用样例 ZkClient介绍 因为Zookeeper API比较复杂,使用并不方便,所以出现了ZkClient,ZkClient对Zookeeper ...
- curator框架的使用以及实现分布式锁等应用与zkclient操作zookeeper,简化复杂原生API
打开zookeeper集群 先体会一下原生API有多麻烦(可略过): //地址 static final String ADDR = "192.168.171.128:2181,192.16 ...
- Java操作zookeeper
Java操作zookeeper总共有三种方式: 1.原生的Java API 2.zkclient 3.curator 第一种实现代码: pom.xml <dependency> <g ...
- Java代码操作zookeeper
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- Java curator操作zookeeper获取kafka
Java curator操作zookeeper获取kafka Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更 ...
- [py]python操作zookeeper
参考: https://blog.csdn.net/heizistudio/article/details/79568188 1.安装zookeeper zookeeper-3.4.6.tar.gz ...
- 使用Curator操作ZooKeeper
Curator是Netflix公司开源的一个ZooKeeper client library,用于简化ZooKeeper客户端编程.它包含如下模块: Framework:Framework是ZooKe ...
- java 操作zookeeper
java 操作zookeeper(一) 首先要使用java操作zookeeper,zookeeper的javaclient 使我们更轻松的去对zookeeper进行各种操作,我们引入zookeeper ...
- Zookeeper--java操作zookeeper
如果是使用java操作zookeeper,zookeeper的javaclient 使我们更轻松的去对zookeeper进行各种操作,我们引入zookeeper-3.4.5.jar 和 zkclien ...
随机推荐
- opencv: 排序
opencv提供了排序函数: sort和sorIdx , 其中sortIdx可以获取排序后的序号,比较方便: sortIdx原型: C++: void sortIdx(InputArray src, ...
- Intellij Idea识别Java Web项目
使用maven生成一个Java项目,手动添加相应的web目录WEB_INF,web.xml等,此时idea没有自动识别为web项目,此时编辑web.xml文件会出现一些不该出现的错误,需要做的就是让i ...
- Centos 7最小化InfluxDB部署
配置源 [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com ...
- HTML5 accesskey的用法
<button onclick="start()" accesskey="s">开始</button> <button oncli ...
- centos6.5mini版安装及配置
1.安装选择界面,这个选第一个 2.镜像完整性检查,一般都是跳过SKIP 3.欢迎界面,进入安装了 4.语言选择,这个是没有中文的,用默认的英文就行 5.键盘布局,用默认的us 6.这里会给一个警告, ...
- 在Java中如何高效的判断数组中是否包含某个元素
原文出处: hollischuang(@Hollis_Chuang) 如何检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作.同时,这个问题在Stack Ove ...
- python读取wav文件并播放[pyaudio/wave]
#!/usr/bin/python # encoding:utf-8 import pyaudio import wave CHUNK = 1024 # 从目录中读取语音 wf = wave.open ...
- 【概括】C++11/14特性
c++11 c++14
- Golang入门教程(十)内建函数
比较常用的内建函数 参考: http://blog.csdn.net/liumiaocn/article/details/54804074
- 015、调试Dockerfile(2019-01-04 周五)
参考https://www.cnblogs.com/CloudMan6/p/6853329.html Dockerfile构建镜像的过程 1.从base镜像运行一个容器 2.执行一条指令,对容 ...