import org.I0Itec.zkclient.ZkClient;

public class ZkClientTool {

/**

  • 获取zkClien

  • @return

*/

public static ZkClient getZkClient() {

//获取zkclent new SerializableSerializer()是序列化器,可以直接传入对象,也可以直接读取,序列化器为我们完成序列化和反序列化

ZkClient zkClient = new ZkClient(“192.168.40.135:2181”, 10000, 500000, new MySerializer());

return zkClient;

}

}

创建节点:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

import org.apache.zookeeper.CreateMode;

public class CreateNode {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

User u

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

ser = User.builder().id(1).name(“zzz”).build();

String path = zkCliet.create("/node_2", user, CreateMode.PERSISTENT);

System.out.println(path);

}

}

获取节点值:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

import org.apache.zookeeper.data.Stat;

public class GetNodeData {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

//如果获取节点状态,将stat作为参数传入即可

Stat stat = new Stat();

String user = zkCliet.readData("/node_2", stat);

System.out.println(“user:” + user);

System.out.println(“stat” + stat);

}

}

获取子节点信息:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

import java.util.List;

public class GetChildNode {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

List children = zkCliet.getChildren("/node_2");

System.out.println(“children” + children.toString());

}

}

检测某个节点是否存在:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

public class NodeExits {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

boolean exists = zkCliet.exists("/node_2");

System.out.println(“exists:” + exists);

}

}

删除节点:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

public class DeleteNode {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

boolean node_2 = zkCliet.delete(“node_2”);

System.out.println(“delete node_2:” + node_2);

//如果节点有子节点,使用deleteRecursive循环删除

boolean node_21 = zkCliet.deleteRecursive(“node_2”);

System.out.println(“contains child delete node_21:” + node_21);

}

}

如果有子节点会报错:

需要用deleteRecursive删除:

节点修改:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

public class WriteData {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

Object oldDate = zkCliet.readData("/node_1");

System.out.println(“oldDate:” + oldDate);

zkCliet.writeData("/node_1", “zkca”);

Object newDate = zkCliet.readData("/node_1");

System.out.println(“newDate:” + newDate);

}

}

事件订阅:

可以订阅两种事件:

1.节点的子节点列表发生变化

2.节点本身数据发生变化

首先看节点的子节点的变化的事件订阅

package com.zkclient;

import org.I0Itec.zkclient.IZkChildListener;

import org.I0Itec.zkclient.ZkClient;

import java.util.List;

public class SubScribeChildChange {

private static class ZkChildChangeListener implements IZkChildListener {

public void handleChildChange(String parentPath, List childrenList) throws Exception {

System.out.println(“parentPath:” + parentPath);

System.out.println(“childrenList:” + childrenList.toString());

}

}

public static void main(String[] args) throws InterruptedException {

ZkClient zkCliet = ZkClientTool.getZkClient();

//可以监听:给node_1添加子节点、删除子节点甚至node_1节点本身的创建和删除

zkCliet.subscribeChildChanges("/node_1", new ZkChildChangeListener());

Thread.sleep(Integer.MAX_VALUE);

}

}

zookeeper之ZkClient使用,java电子书阅读器开发相关推荐

  1. python微信小程序 java电子书阅读器系统uniapp

    功能介绍 将系统权限按管理员和用户这两类涉及用户划分. (a) 管理员:管理员使用本系统涉到的功能主要有:个人中心.用户管理.类型管理.书城管理.管理员管理.系统管理等功能. (b)用户进入系统前台可 ...

  2. iphone平台ePub电子书阅读器开发

    最近接到项目,开发iphone平台的ePub电子书阅读器.开始进军乔布斯iphone的开发平台.因为时间的限制,选了一个linux下开源的软件cool reader engine进行移植,因为这开源软 ...

  3. CZoneSoft iBooker手机电子书阅读器开发

    CZoneSoft推出移动终端(手机)网络阅读和手机支付解决方案--IBooker电子书阅读器 CZoneSoft以widgets技术为基础开发的iBooker手机阅读+在线支付的软件,支持 脱机阅读 ...

  4. Android电子书阅读器开发笔记(1):创建电子书阅读器项目

    项目开发工具是Android Studio. 创建项目 选择菜单命令:File->New->New Project,填入项目信息. (2)设置项目运行的设备和最低Android SDK版本 ...

  5. java计算机毕业设计springboot+vue基本微信小程序的电子书阅读器小程序

    随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息.为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,电子书阅读 ...

  6. 基于Android的本地电子书阅读器的设计与实现Ebook(1)

    基于Android的本地电子书阅读器的设计与实现Ebook(1) 学习Android时间不久,试着做了一个本地电子书阅读器APP,因为知识浅薄并不能像其他大佬一样实现各种繁杂的功能,但可以实现基本的阅 ...

  7. 基于android的电子书阅读器app

    基于android的电子书阅读器app 基于Android平台的电子书阅读器的设计与实现主要通过Eclipse开发工具, Java语言与Sqlite数据库来完成的.本阅读器实现了本地阅读,手动翻页,书 ...

  8. Android Studio 电子书阅读器 双端程序

    Android Studio 电子书阅读器 双端程序 主要实现管理人员java web后台管理图书信息和图书的分类信息,数据库采用 mysql 和 sqlite android 端显示网络端的图书,可 ...

  9. 计算机毕业设计springboot+vue基本微信小程序的电子书阅读器小程序

    项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息.为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代, ...

  10. 淡黄色电子书阅读器网站模板

    简介: 淡黄色电子书阅读器网站模板 网盘下载地址: http://kekewangLuo.cc/54nxHefsgCO0 图片:

最新文章

  1. Mac ssh 挂载linux服务器
  2. Git突破文件限制上传大文件
  3. LeetCode - 413. Arithmetic Slices - 含中文题意解释 - O(n) - ( C++ ) - 解题报告
  4. Tomcat安装及Eclipse配置教程
  5. ZZULIOJ 1115: 数组最小值
  6. Day3-php 字符串1
  7. MySQL INSERT的4种形态
  8. 剧情介绍:“我是山姆”
  9. laravel redis_解析laravel之redis简单模块操作
  10. iOS6中旋转的略微改变
  11. C/C++遍历目录下的所有文件(Windows篇)
  12. 利用google网管工具,快速诊断网站(一)
  13. matlab的gaot在哪里,最权威遗传算法工具箱GAOT(gaot)安装方法
  14. 第十五届全国大学生智能汽车竞赛华南赛区
  15. html3d转换浏览器设定,R:使用rgl生成可以在Web浏览器中查看的3d可旋转图形?
  16. edgewin10无法安装_如何解决Win10 Edge浏览器无法下载文件?
  17. 小黄鸡QQ空间自动回复机器人
  18. Linux面试常考命令
  19. [EXCEL] 宏的录制、调用和删除
  20. 高手速成android开源项目【View篇】

热门文章

  1. Linked Data_百度百科
  2. 8个免费恶搞照片在线生成网站
  3. 计算机手机共享上网,电脑建WIFI热点 手机共享上网教程
  4. html5吹气球游戏,吹气球的游戏作文
  5. 京东放大镜效果实现 + 原理分析
  6. Flash extractor功能介绍
  7. github 提交消息的emoji表情符号规范
  8. Hubble数据库x某股份制商业银行 信用卡反欺诈项目构建2.4亿条社交网络库
  9. 如何用U盘重新安装Win10系统
  10. python中找不到模块_安装完Python包然后找不到模块的解决步骤