返回顶部
首页 > 资讯 > 精选 >怎么使用Java操作Zookeeper
  • 520
分享到

怎么使用Java操作Zookeeper

2023-06-14 23:06:02 520人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关怎么使用Java操作ZooKeeper的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象

这篇文章给大家分享的是有关怎么使用Java操作ZooKeeper的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Java的优点是什么

1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是面向网络的语言;4. 鲁棒性,java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。;5. 安全性,用于网络、分布环境下的Java必须防止病毒的入侵。6. 体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7. 可移植性,Java可以方便地移植到网络上的不同机器。8.解释执行,Java解释器直接对Java字节码进行解释执行。

Maven依赖:

<dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.11</version></dependency>

使用zkclient操作Zookeeper

创建节点:

@Testpublic void testCreatenode() {//建立连接//zkServers: Zookeeper服务器IP地址和端口号,如果是集群情况下用逗号分割多个Zookeeper服务器地址//sessionTimeout: 会话超时时间//connectionTimeout: 连接超时时间ZkClient zkClient = new ZkClient("127.0.0.1:2181", 60000, 5000);//创建数据Student student = new Student();student.setName("张三");student.setAge(18);student.setPhone("1585454xxxx");//创建持久节点zkClient.createPersistent("/p_node", student);//创建持久顺序节点zkClient.createPersistentSequential("/ps_node", student);//创建临时节点zkClient.createEphemeral("/e_node", student);//创建临时顺序节点zkClient.createEphemeralSequential("/ps_node", student);//关闭客户端//关闭客户端的同时,前面创建的临时节点也会被删除zkClient.close();}

读取节点数据:

@Testpublic void testReadNodeData() {ZkClient zkClient = new ZkClient("127.0.0.1:2181", 60000, 5000);Stat stat = new Stat();Student student = zkClient.readData("/p_node", stat);System.out.println("节点状态信息:" + JSON.tojsONString(student));System.out.println("节点数据:" + JSON.toJSONString(stat));zkClient.close();}//输出结果://节点状态信息:{"age":18,"name":"张三","phone":"1585454xxxx"}//节点数据:{"aversion":0,"ctime":1619165355431,"cversion":0,"czxid":165,"dataLength":260,"ephemeralOwner":0,"mtime":1619165355431,"mzxid":165,"numChildren":0,"pzxid":165,"version":0}

删除节点:

@Testpublic void testDeleteNode() {ZkClient zkClient = new ZkClient("127.0.0.1:2181", 60000, 5000);//删除节点,不能删除带有子节点的节点zkClient.delete("/p_node");//删除节点,递归删除所有子孙节点zkClient.deleteRecursive("/p_node2");zkClient.close();}

更新节点数据:

@Testpublic void testWriteNodeData() {ZkClient zkClient = new ZkClient("127.0.0.1:2181", 60000, 5000);//更新节点数据zkClient.writeData("/p_node", "myData1");//使用CAS更新节点数据//zkClient.writeData("/p_node", "myData2", 1);zkClient.close();}

获取子节点列表:

@Testpublic void testGetChildNodes() {ZkClient zkClient = new ZkClient("127.0.0.1:2181", 60000, 5000);//获取子节点列表List<String> childList = zkClient.getChildren("/p_node");childList.stream().forEach(System.out::println);zkClient.close();}

节点监听

Java节点监听都是永久的,触发一次后不会被删除。

监听节点的子节点变化:

@Testpublic void testSubscribeChildChanges() throws IOException {ZkClient zkClient = new ZkClient("127.0.0.1:2181", 60000, 5000);zkClient.subscribeChildChanges("/p_node", new IZkChildListener(){//子节点改变时调用@Overridepublic void handleChildChange(String parentPath, List<String> currentChilds) throws Exception {System.out.println(parentPath + "子节点发生改变");System.out.println("当前子节点列表:" + currentChilds);}});//阻塞客户端,便于测试System.in.read();}

监听节点数据变化:

@Testpublic void testSubscribeDataChanges() throws IOException {ZkClient zkClient = new ZkClient("127.0.0.1:2181", 60000, 5000);zkClient.subscribeDataChanges("/p_node", new IZkDataListener(){//节点数据改变时调用@Overridepublic void handleDataChange(String dataPath, Object data) throws Exception {System.out.println(dataPath + "节点数据发生变化");System.out.println("修改后的数据为:" + data.toString());}//节点被删除时调用@Overridepublic void handleDataDeleted(String dataPath) throws Exception {System.out.println(dataPath + "节点已被删除");}});//阻塞客户端,便于测试System.in.read();}

监听Zookeeper连接状态变化:

@Testpublic void testSubscribeStateChanges() throws IOException {ZkClient zkClient = new ZkClient("127.0.0.1:2181", 60000, 5000);zkClient.subscribeStateChanges(new IZkStateListener(){//当zookeeper连接状态改变时调用@Overridepublic void handleStateChanged(Watcher.Event.KeeperState state) throws Exception {System.out.println("当前状态" + state);}//在zookeeper会话过期并且创建了一个新的会话之后调用@Overridepublic void handleNewSession() throws Exception {System.out.println("会话过期,已创建新的会话");}//当会话不能重新建立时调用@Overridepublic void handleSessionEstablishmentError(Throwable error) throws Exception {error.printStackTrace();}});//阻塞客户端,便于测试System.in.read();}

感谢各位的阅读!关于“怎么使用Java操作Zookeeper”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 怎么使用Java操作Zookeeper

本文链接: https://lsjlt.com/news/275611.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么使用Java操作Zookeeper
    这篇文章给大家分享的是有关怎么使用Java操作Zookeeper的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象...
    99+
    2023-06-14
  • 如何使用Java操作Zookeeper
    目录简介使用zkclient操作Zookeeper节点监听简介 Java操作Zookeeper有很多种方式,如zookeeper、zkclient、curator等等,下面介绍下使...
    99+
    2024-04-02
  • zookeeper-3. java操作z
    对于Zookeeper的建立连接、增删改查、以及监视节点的变化操作。一、简单实例操作zookeeper原生API1. 创建会话方法:客户端可以通过创建一个zookeeper实例来连接zookeeper服务器。参数说明:connectStri...
    99+
    2023-01-31
    操作 zookeeper java
  • Zookeeper的Java API操作(一)
    环境搭建 创建一个普通的Maven项目 导入log4j.properties日志文件到项目的根目录或者resource文件下。 在pom.xml中添加Zookeeper的相关依赖: org.apache.zookeeper...
    99+
    2021-02-15
    Zookeeper的Java API操作(一)
  • java操作zookeeper实例代码
    本篇内容主要讲解“java操作zookeeper实例代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java操作zookeeper实例代码”吧!package...
    99+
    2024-04-02
  • 使用Java怎么操作共享数据
    这篇文章将为大家详细讲解有关使用Java怎么操作共享数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3...
    99+
    2023-06-14
  • 使用java怎么对elasticsearch进行操作
    这期内容当中小编将会给大家带来有关使用java怎么对elasticsearch进行操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java操作es集群步骤1:配置集群对象信息;2:创建客户端;3:查看集...
    99+
    2023-05-30
  • 怎么在java中使用Stream操作元素
    怎么在java中使用Stream操作元素?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;...
    99+
    2023-06-14
  • 怎么在Java中使用EasyExcel来操作Excel表
    怎么在Java中使用EasyExcel来操作Excel表?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一.读ExcelExcel表格示例对象示例@Datapublic ...
    99+
    2023-06-14
  • IDEA版怎么使用Java操作Redis数据库
    本篇内容主要讲解“IDEA版怎么使用Java操作Redis数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“IDEA版怎么使用Java操作Redis数据库”吧!首先 下载 jedis.jar包...
    99+
    2023-06-20
  • 教你怎么用Java操作Redis
    首先让我们创建一个普通的Maven工程,添加相应的依赖 <dependencies> <dependency> <groupId&g...
    99+
    2024-04-02
  • 如何使用Java操作Redis
    这篇文章给大家分享的是有关如何使用Java操作Redis的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先让我们创建一个普通的Maven工程,添加相应的依赖<dependencies><depe...
    99+
    2023-06-15
  • 怎么使用.NETCore操作RabbitMQ
    这篇文章将为大家详细讲解有关怎么使用.NETCore操作RabbitMQ,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是RabbitMQ?RabbitMQ是由erlang语言开发的一个基于AMQP(A...
    99+
    2023-06-15
  • 使用python3怎么操作excel
    使用python3怎么操作excel?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语...
    99+
    2023-06-14
  • 使用postman怎么操作ElasticSearch
    本篇内容主要讲解“使用postman怎么操作ElasticSearch”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“使用postman怎么操作ElasticSearch”吧!Postman背景介...
    99+
    2023-06-07
  • 怎么使用PHP操作Redis
    本篇内容主要讲解“怎么使用PHP操作Redis”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用PHP操作Redis”吧!redis 的基本操作方法1 redis 的连接 ://实例化red...
    99+
    2023-06-20
  • phpstorm怎么使用和操作
    使用和操作 PhpStorm 的步骤如下:1. 下载和安装 PhpStorm:前往 PhpStorm 官方网站下载 PhpStorm...
    99+
    2023-09-09
    phpstorm
  • 怎么使用Jquery操作Cookies
    本篇内容介绍了“怎么使用Jquery操作Cookies”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Cookies亦称Cookie,Cook...
    99+
    2023-06-30
  • 使用java怎么实现一个mysql分表操作
    使用java怎么实现一个mysql分表操作?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。设置项目气动执行次方法(每天检查一次表记录)public cl...
    99+
    2023-06-06
  • SpringCloud使用Zookeeper作为注册中心
    目录服务注册 服务发现 服务注册 引入相关依赖: <?xml version="1.0" encoding="UTF-8"?> <projec...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作