自定义 RPC框架3——JAVA实现Zookeeper节点增删改查
Zookeeper安装
zookeeper的安装在之前的文章中已经写过:https://blog.csdn.net/qq_45587153/article/details/123630361?spm=1001.2014.3001.5502
导入POM依赖
<dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.10</version>
</dependency>
测试方法
package com.shen.zk;import org.apache.zookeeper.*;
import org.apache.zookeeper.data.Stat;import java.io.IOException;
import java.util.List;public class TestZookeeper {public static void main (String[] args) throws Exception {//create();//list();//get();delete();}/*** 删除节点* 删除节点前,需要先查询节点的状态cversion,通过getData来查询这个版本* 设计的目的是保证删除的节点是自己想删除的那个*/public static void delete() throws Exception{ZooKeeper zooKeeper = new ZooKeeper("129.211.65.241:2181", 10000, new Watcher() {@Overridepublic void process(WatchedEvent watchedEvent) {System.out.println("delete监听");}});Stat stat = new Stat();System.out.println(stat);zooKeeper.getData("/parent/sequence0000000001",false,stat);System.out.println(stat);zooKeeper.delete("/parent/sequence0000000001", stat.getCversion());}/*** 查询节点中存储的数据,相当于根据key获取value*/public static void get() throws Exception{ZooKeeper zooKeeper = new ZooKeeper("129.211.65.241:2181", 10000, new Watcher() {@Overridepublic void process(WatchedEvent watchedEvent) {System.out.println("get方法监听");}});//获取数据byte[] datas = zooKeeper.getData("/parent",false,null);System.out.println("节点/parent中存储的数据是:" + new String(datas));}/*** 查询节点相当于遍历* @throws Exception*/public static void list() throws Exception{ZooKeeper zooKeeper = new ZooKeeper("129.211.65.241:2181", 10000, new Watcher() {@Overridepublic void process(WatchedEvent watchedEvent) {System.out.println("list方法监听");}});listAll(zooKeeper,"/");//遍历zk中所有节点List<String> res = zooKeeper.getChildren("/",false);for (String str : res){System.out.println(str);}}/*** 递归遍历所有节点*/private static void listAll(ZooKeeper zooKeeper,String path) throws Exception{//获取当前节点所有字节点List<String> children = zooKeeper.getChildren(path,false);for(String child : children){String currentNodeName = "/".equals(path) ? (path + child) : (path + "/" + child);System.out.println(currentNodeName);listAll(zooKeeper,currentNodeName);}}/*** 创建节点* 什么是会话?* 持久,长期,有状态的对象,多次请求响应* 使用java远程访问zk,步骤:* 1,创建客户端* 2,使用客户端发送命令* 3,处理返回结果* 4,回收资源*/public static void create() throws IOException, InterruptedException, KeeperException {//客户端对象ZooKeeper zooKeeper = new ZooKeeper("129.211.65.241:2181", 10000, new Watcher() {@Overridepublic void process(WatchedEvent watchedEvent) {System.out.println("watch方法执行");}});//创建一个节点String result = zooKeeper.create("/parent","parent data".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);System.out.println("创建parent节点结果:"+ result);//创建一个临时节点String tmpResult = zooKeeper.create("/parent/tmp",null,ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL);System.out.println("创建/parent/tmp节点结果:" + tmpResult);//创建一个带序号的节点String seqResult = zooKeeper.create("/parent/sequence",null,ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT_SEQUENTIAL);System.out.println("创建/parent/sequence节点结果:" + seqResult);Thread.sleep(6000);//关闭客户端zooKeeper.close();}
}
自定义 RPC框架3——JAVA实现Zookeeper节点增删改查相关推荐
- Curator基本操作(Zookeeper节点增删改查)
Curator是Zookeeper的Java客户端库,官网为 https://curator.apache.org . 环境 Ubuntu 22.04 Zookeeper 3.7.1 JDK 17.0 ...
- 基于Python Flask框架+jquery Ajax技术实现的增删改查(CRUD)+Ajax的异步文件上传
运行界面(话不多说先上图) 运行之后的index界面,有登陆.注册功能 登陆界面,输入数据库中用户名.密码不为空且密码是加密的数据,进入main界面 注册界面,用的bootstrop的弹窗,用户名和密 ...
- Java连接Mysql数据库增删改查实现
Java连接Mysql数据库增删改查实现 时间比较赶,我这里只实现查询,有时间再添加另外两个 难度 : ⭐⭐⭐(全星5颗星的情况下) 新建一个动态的网站工程, 把jar包全部复制进去,主要要那个mys ...
- JDBC:JAVA连接Mysql实现增删改查
总有特别赶的时候,小高叫你如何速通JAVA连接数据库Mysql实现增删改查.CV战士 一.前置准备工作 1. 安装IDEA,配置JAVA环境 2. 安装Mysql,配置Mysql环境变量 3. 安装S ...
- Java 实现Gbase数据库增删改查功能
Java 实现Gbase数据库增删改查功能 具体代码如下 主要: 要记得在官网下载驱动包gbase-connector-java-8.3-bin.jar package com.advance.JDB ...
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)...
最近看老罗的视频,跟着完成了利用Java操作MySQL数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...
- mysql封装 javabean,利用Java针对MySql封装的jdbc框架类JdbcUtils完整实现(包含增删改查、JavaBean反射原理,附源码)...
最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...
- java mysql jdbc 封装_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)...
近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...
- 巨杉数据库SequoiaDB在Java开发中的增删改查CURD
文章目录 JSON应用开发 增删改查操作 1 快速入门 1.1 环境部署 部署SequoiaDB集群环境 部署Windows开发环境 1.2 正式开始 2 CURD教程 2.1 Java开发环境搭建 ...
最新文章
- 另类L2TP Tunnel
- 微软为华为定制了一个“烂笔头小冰”,让人想起了老罗的“闪念胶囊”
- C 语言中” 与””的区别
- boost::hana::group用法的测试程序
- php session 封装类,PHP封装的数据库保存session功能类
- 为自己的p2psearcher理想而努力地奋斗
- 奇安信校招面试题来啦
- Java高级面试题!docker启动
- android ichartjs 曲线图,C#中利用LightningChart绘制曲线图表
- Linux/Windows 文件交互读取转义字符变换
- windows环境下zookeeper做成服务并启动
- 公众号吸粉实操之qq群吸粉
- ES选举:Elasticsearch中Master选举完全解读
- python 读取txt文件中满足要求的行写到新文件中_python_文本文件里面随机抽取若干行,写入新的文本文件里面...
- 使用服务器端控制AJAX页面缓存
- Java violate变量
- Windows Azure案例:迈阿密市政府使用“云”平台改善服务方案,降低运营成本
- Delphi ListView的用法(常用技巧) 作者:蓝色忧郁
- day1学习vue2笔记 vue指令
- Conv2Former