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工具,远程连接到 ...
随机推荐
- 操作系统实战45讲笔记- 07 Cache与内存:程序放在哪儿?
程序局部性原理: CPU 大多数时间在执行相同的指令或者与此相邻的指令 时间局部性VS空间局部性: a. 时间局部性:当前访问的指令或数据,也可能在之后访问: b. 空间局部性:当程序访问内存地址x时 ...
- CSV文件乱码处理方法
如果csv出现乱码, 直接用记事本打开另存为的格式从utf-8变为ANSI模式即可. 然后再打开
- liunx设置QQ邮箱报警
1.先安装一个软件包, 2.先登录电脑QQ邮箱->设置->账户->账户安全前两条选择开启,并生成授权码,授权码很重要很重要,千万不要泄露. 3.在liunx命令行输入 :vi /e ...
- .NetCore自定义模板,发布Nuget
1.创建模板项目框架 2.创建模板文件 在项目文件夹根目录创建.template.config文件夹,在文件夹下创建新的文件:template.json 内容如下 { "$schema&qu ...
- java技术系列(一) Enum
Enum的本质是类,继承自Enum类. enum直接使用==进行比较就可以. 类型的静态values方法,返回左右的枚举实例. ordinal方法返回enum声明中枚举常亮的位置. enum可以继承接 ...
- fragment加radio不可滑动
public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener { ...
- vue 生命周期个人理解
activated():在vue对象存活的情况下,进入当前存在activated()函数的页面时,一进入页面就触发:可用于初始化页面数据等: created():在模板渲染成html前调用,即通常初始 ...
- Unity连接海康摄像头(shader转码)硬解码
1.第一种方法 之前写过就不写了给个地址 2.第二种方法 用海康的SDK (shader转码) 先上效果 demo下载地址: 点击下载 开启多个摄像头的话 第二种比一种流畅
- Pytorch————学习1
torch.nn 仅支持小批量.整个torch.nn程序包仅支持作为小批量样本的输入,而不支持单个样本. 例如,nn.Conv2d采用的是4D张量:nSamples x nChannels x He ...
- mac 打开活动监视器(任务管理器)
打开方式 1.快捷键 command+option+esc 选择需要强制退出的app 2.通过菜单 需要查看完整的占用率 应用程序=>实用工具=〉活动监视器