zookeeper之三 ZKClient客户端的使用
2024-09-05 20:30:25
ZKClient在原生API接口上进行了包装,同时在内部实现了诸如session超时重连、watcher反复注册等功能,使得zookeeper客户端繁琐的细节对开发人员透明。下面将从以下几个方面来使用ZKClient这个Zookeeper客户端。
- 1.创建会话
- 2.创建节点
- 3.读取数据
- 4.更新数据
- 5.删除节点
- 6.检查节点是否存在
首先需要加入zkclient的maven依赖
<!--zkClient-->
<!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
public class ZKClientDemo { //zookeeper地址。集群时使用逗号分隔
private static final String zkServers = "127.0.0.1:2181"; public static void main(String[] args) {
//创建会话
ZkClient zkClient = new ZkClient(zkServers, 3000); //创建节点
String path = "/mynode";
String data = "hello";
//zkClient.createPersistent(path);
//zkClient.createEphemeral(path);
zkClient.create(path, data, CreateMode.PERSISTENT); System.out.println("是否存在mynode节点:" + zkClient.exists(path)); //列出根下所有节点
System.out.println("根下拥有的子节点:" + zkClient.getChildren("/")); //读取节点的数据
System.out.println(zkClient.readData(path)); //修改节点数据
zkClient.writeData(path, "world");
System.out.println(zkClient.readData(path)); //删除节点
zkClient.delete(path);
//zkClient.delete(path, 1);//删除指定版本号的节点
//zkClient.deleteRecursive(path);//级联删除所有子节点 System.out.println("删除节点后:" + zkClient.getChildren("/")); //关闭客户端连接
if (zkClient != null) {
zkClient.close();
}
}
}
最新文章
- 信息安全-1:python之playfair密码算法详解[原创]
- There is no getter for property named &#39;useName&#39; in &#39;class cn.itcast.mybatis.pojo.User&#39;
- Swing学习笔记1-----Swing组件类的层次
- HTML基本结构
- 《征服 C 指针》摘录1:什么是空指针?区分 NULL、0 和 &#39;\0&#39;
- el 中requestScope和param
- 40.Android之新手指引界面学习
- 数据结构之,线性表去除等于x的元素
- Fragment 与 Fragment 相互传值
- mysql数据库回滚
- linux下shapely的安装
- destoon实现底部添加你是第几位访问者的方法
- Let’s do this!新手程序员的入门指南(转)
- 表现层及ASP.NET MVC介绍(二)
- 用java实现简单快速的webservice客户端/数据采集器(支持soap1.1和soap1.2标准,支持utf-8编码)
- window.print打印指定html元素中的内容
- [bzoj4868][Shoi2017]期末考试
- 【原创】谈谈线上CPU100%排查套路
- ***远程连接MYSQL提示1130 - Host is not allowed to connect to this MySQL server
- 元素定位-XPATH定位方法总结
热门文章
- pip安装报错:Fatal error in launcher: Unable to create process using &#39;";&#39;
- docker-容器完整构建过程
- 2018 icpc 青岛
- Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo
- 阶段3 1.Mybatis_09.Mybatis的多表操作_8 mybatis多对多操作-查询角色获取角色下所属用户信息
- lnmp 安装 访问 配置 laravel
- SSTap | ProxyCap
- 【MM系列】SAP 各种冲销凭证
- SIRIM上海,http://www.sirim-global.com
- 【Linux开发】【Qt开发】配置tslibs触摸屏库环境设置调试对应的设备挂载点