java 操作 zookeeper
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的更多相关文章
- Java操作zookeeper
Java操作zookeeper总共有三种方式: 1.原生的Java API 2.zkclient 3.curator 第一种实现代码: pom.xml <dependency> <g ...
- java 操作zookeeper
java 操作zookeeper(一) 首先要使用java操作zookeeper,zookeeper的javaclient 使我们更轻松的去对zookeeper进行各种操作,我们引入zookeeper ...
- zookeeper(三):java操作zookeeper
引入jar包 首先要使用java操作zookeeper,zookeeper的javaclient 使我们更轻松的去对zookeeper进行各种操作,我们引入zookeeper-3.4.5.jar 和 ...
- Java 使用ZkClient操作Zookeeper
目录 ZkClient介绍 导入jar包依赖 简单使用样例 ZkClient介绍 因为Zookeeper API比较复杂,使用并不方便,所以出现了ZkClient,ZkClient对Zookeeper ...
- Java代码操作zookeeper
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- Zookeeper--java操作zookeeper
如果是使用java操作zookeeper,zookeeper的javaclient 使我们更轻松的去对zookeeper进行各种操作,我们引入zookeeper-3.4.5.jar 和 zkclien ...
- Zookeeper入门(七)之Java连接Zookeeper
Java操作Zookeeper很简单,但是前提要把包导对. 关于Zookeeper的Linux环境搭建可以参考我的这篇博客:Linux环境下Zookeeper安装 下面进入正题: 一.导入依赖 < ...
- Java curator操作zookeeper获取kafka
Java curator操作zookeeper获取kafka Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更 ...
- Hbase深入学习(六) Java操作HBase
Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对hbase服务器进行操作. 先看以下读取一行记录hbase是如何进行工作 ...
- Java操作hbase总结
用过以后,总得写个总结,不然,就忘喽. 一.寻找操作的jar包. java操作hbase,首先要考虑到使用hbase的jar包. 因为咱装的是CDH5,比较方便,使用SecureCRT工具,远程连接到 ...
随机推荐
- Linux 查找并杀死进程
1.查找包含java的所有进程 ps -ef | grep java 2.根据端口号查看进程号 lsof -i:8080 sudo lsof -i:8080 3.杀死进程 kill -9 proces ...
- 从零搭建hadoop集群之mysql安装
Linux RPM 方式安装 MySQL在 hadoop02机器上 1. 安装新版mysql前,需将系统自带的mariadb-lib卸载 [root@hadoop02 ~]# rpm -qa|grep ...
- js 浮点数加、减、乘、除。
1.浮点数加法运算 function numAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split("." ...
- ssh 登陆 Host key verification failed.
报错 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION ...
- JSP课设:学生选课系统(附源码+调试)
JSP学生选课管理系统学生选课管理系统功能概述(1)登录模块分为两种角色:学生角色.教师角色 (2)教师模块:选课管理功能为对课程信息(课程编号.名称.学分)进行添加.修改.删除操作:学生信息功能对学 ...
- hnsw
Hnswlib - fast approximate nearest neighbor search Header-only C++ HNSW implementation with python b ...
- unity tex2Dlod in vert
https://forum.unity.com/threads/how-to-sample-a-texture-in-vertex-shader.513816/ GreatWall said: ↑ ...
- hdrp package导入工程
补充: 可以直接把包提出来放一个单独文件夹 然后在package manager中load from disk,跟下面手动改效果没区别 如果发现有各种引用丢失,在工程内对包reimport下 1 需要 ...
- iview table添加input框,且校验
方法一 render渲染 { title: "用户名", key: "stockPrice", render: (h, params) => { retu ...
- Android studio学习笔记2
Android studio学习笔记2 20201303张奕博 2023.1.14 android studio动态调试apk 1.配置环境 android studio需要安装插件:1,Smalid ...