pom.xml
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
</dependency>

版本:zookeeper-3.5.7

import org.I0Itec.zkclient.IZkDataListener;
import org.I0Itec.zkclient.ZkClient;
import org.I0Itec.zkclient.serialize.SerializableSerializer;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.data.Stat;
import org.junit.jupiter.api.Test; import java.io.IOException;
import java.util.List; public class TestZkClient
{
private ZkClient zkClient = null; @Test
public void test() throws IOException
{
//zk server 服务器ip地址 端口号
//会话超时时间
//连接超时时间
//序列化方式 对象
zkClient = new ZkClient("192.168.0.115:2181",60000*30,60000,new SerializableSerializer()); System.out.println(zkClient); //监听节点变化
//需要通过java修改zookeeper数据,才能监听到
zkClient.subscribeDataChanges("/node1", new IZkDataListener()
{
//节点数据变化时触发
@Override
public void handleDataChange(String s, Object o) throws Exception
{
System.out.println("change Node: " + s);
System.out.println("change data: " + o);
}
//节点数据删除时触发
@Override
public void handleDataDeleted(String s) throws Exception
{
System.out.println("delete Node: " + s);
}
}); //testWriteNodeData();
//testDeleteNode(); //System.in.read(); //阻塞当前监听,使得监听不会停止 //testCreateNode();
//testDeleteNode();
//testFindNode();
//testFindNodeData();
//testFindNodeAndStat();
//testWriteNodeData(); zkClient.close();
} //创建zk节点
public void testCreateNode()
{
//创建持久节点
String node1 = zkClient.create("/node1", "xiaochen", CreateMode.PERSISTENT);
System.out.println(node1);
//创建持久顺序节点
String node2 = zkClient.create("/node1/names","zhangsan",CreateMode.PERSISTENT_SEQUENTIAL);
System.out.println(node2);
//创建临时节点
String node3 = zkClient.create("/node1/lists","xiaoxiao",CreateMode.EPHEMERAL);
System.out.println(node3);
//创建临时顺序节点
String node4 = zkClient.create("/node1/lists1","xiaoming",CreateMode.EPHEMERAL_SEQUENTIAL);
System.out.println(node4);
} //删除zk节点
public void testDeleteNode()
{
//删除没有子节点的节点 如果节点有子节点会报错
/*boolean b1 = zkClient.delete("/node1");
System.out.println(b1);*/ //遍历删除节点信息
boolean b2 = zkClient.deleteRecursive("/node1");
System.out.println(b2);
} //查询zk节点
public void testFindNode()
{
List<String> children = zkClient.getChildren("/");
for (String child : children)
{
System.out.println(child);
}
} //查询zk某个节点数据
//注意:通过java客户端操作时,需要保证节点存储的数据和获取节点时的数据序列化方式一致
public void testFindNodeData()
{
Object data = zkClient.readData("/node1");
System.out.println(data);
} //查询zk节点数据并获取状态信息
public void testFindNodeAndStat()
{
Stat stat = new Stat();
Object data = zkClient.readData("/node1",stat);
System.out.println(data);
System.out.println(stat);
} //修改zk节点数据
public void testWriteNodeData()
{
zkClient.writeData("/node1",233);
} }

  

												

java 操作 zookeeper的更多相关文章

  1. Java操作zookeeper

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

  2. java 操作zookeeper

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

  3. zookeeper(三):java操作zookeeper

    引入jar包 首先要使用java操作zookeeper,zookeeper的javaclient 使我们更轻松的去对zookeeper进行各种操作,我们引入zookeeper-3.4.5.jar 和 ...

  4. Java 使用ZkClient操作Zookeeper

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

  5. Java代码操作zookeeper

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

  6. Zookeeper--java操作zookeeper

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

  7. Zookeeper入门(七)之Java连接Zookeeper

    Java操作Zookeeper很简单,但是前提要把包导对. 关于Zookeeper的Linux环境搭建可以参考我的这篇博客:Linux环境下Zookeeper安装 下面进入正题: 一.导入依赖 < ...

  8. Java curator操作zookeeper获取kafka

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

  9. Hbase深入学习(六) Java操作HBase

    Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对hbase服务器进行操作. 先看以下读取一行记录hbase是如何进行工作 ...

  10. Java操作hbase总结

    用过以后,总得写个总结,不然,就忘喽. 一.寻找操作的jar包. java操作hbase,首先要考虑到使用hbase的jar包. 因为咱装的是CDH5,比较方便,使用SecureCRT工具,远程连接到 ...

随机推荐

  1. 关于Salesforce存在至于项目的选择List的取值问题

    概要: 我们在做项目的时候,经常会遇到一个问题: 一个选择List字段的可选项被另一个选择List制约,这种情况如何在后台取得这两者的对应关系. 原文在这里(侵删): Apexで連動項目の選択肢を取得 ...

  2. MQTT QoS 0, 1, 2 介绍

    什么是 QoS 很多时候,使用 MQTT 协议的设备都运行在网络受限的环境下,而只依靠底层的 TCP 传输协议,并不能完全保证消息的可靠到达.因此,MQTT 提供了 QoS 机制,其核心是设计了多种消 ...

  3. KMS服务器 激活win 和 office

    环境:Debian 9.5 (Google Cloud) 切换到root用户:sudo su wget --no-check-certificate https://github.com/teddys ...

  4. Cesium 结合Echarts绘制航线图

    <template> <div id="cesiumContainer"></div> </template> <script ...

  5. win11 改键盘映射

    编辑注册表:按下win+r,输入regedit找到这个路径HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Keyboard Layout ...

  6. app对接微信支付(app支付)

    (先补充一下,app唤醒微信支付失败的话,在确保没错的情况下,建议换一个手机或者重新下载微信,不知道是微信缓存还是什么原因) 1.先申请好开发环境 app支付不需要公众号,所以申请好开发商号和开发平台 ...

  7. Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test (default-test) on project

    updated to from jdk16 Java jdk 8 or 11 to support jenkins Build run. Plugin management tags aligned ...

  8. 像这个TSC打印机售后维修服务平台网站,是如何做到复制不到网站里面的内容的?

    这个条码之家是TSC打印机售后维修服务平台网站 网址是这个,http://www.tiaomazhijia.com 打开网站,复制不了里面的内容,右健也另存不了图片等,是如何做到的. tsc显示错误亮 ...

  9. Day 22 22.1:增量式爬虫

    Day 22 22.1:增量式爬虫 爬虫应用场景分类 通用爬虫 聚焦爬虫 功能爬虫 分布式爬虫 增量式爬虫: 用来监测网站数据更新的情况(爬取网站最新更新出来的数据). 只是一种程序设计的思路,使用什 ...

  10. TODOList小黄条

    TODOList http://www.yynote.cn/ 总结 windows中的神器