前提:
1.虚拟机之间互通。
2.windows环境的host域名解析配置完成     C:\WINDOWS\system32\drivers\etc\host
3.java引入以下maven jar包
<dependencies><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>2.12.0</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>2.12.0</version></dependency><dependency><groupId>com.google.collections</groupId><artifactId>google-collections</artifactId><version>1.0</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><!--test:只在测试时使用,不打包provided:仅在开发环境使用,不打包compile:默认,开发环境要,打包也要--><scope>test</scope></dependency>
</dependencies>
<build><plugins><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins>
</build>
---------------------------------------以下为具体代码-------------------------
package cn.itcast_zk.demo01;import org.apache.curator.RetryPolicy;
import org.apache.curator.RetrySleeper;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.curator.framework.recipes.cache.TreeCache;
import org.apache.curator.framework.recipes.cache.TreeCacheEvent;
import org.apache.curator.framework.recipes.cache.TreeCacheListener;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.CreateMode;
import org.junit.jupiter.api.Test;public class zkOperate {@Testpublic  void  createNode() throws Exception {//创建一个客户连接RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,2);CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);//启动连接client.start();//这个客户递归创建一个节点,节点类型为永久,路径为/java_node_test01/hello,内容为asdbclient.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("/java_node_test01/hello","asdb".getBytes());//结束client.close();}@Testpublic  void  createNode2() throws Exception {RetryPolicy retryPolicy = new ExponentialBackoffRetry(100000,2);CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);client.start();//这个客户递归创建一个节点,节点类型为临时,路径为/java_node_test01/hello,内容为asdbclient.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL).forPath("/java_node_test02/hello");Thread.sleep(5000);client.close();}@Testpublic  void  updateNode() throws Exception {RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,2);CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);client.start();//这个客户递归设置/java_node_test01的值为testclient.setData().forPath("/java_node_test01","test".getBytes());client.close();}@Testpublic  void  delteNode() throws Exception {RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,2);CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);client.start();client.delete().forPath("/java_node_test01");client.close();}@Testpublic  void  getNode() throws Exception {RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,2);CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);client.start();//获取节点的值byte[] bs = client.getData().forPath("/java_node_test01");System.out.println(new String(bs));client.close();}@Testpublic void watch() throws Exception {RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,2);CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);client.start();//创建一个节点的监听,此监听不是一次性的,用完会自动再次注册TreeCache treeCache = new TreeCache(client,"/");//重写监听的方法,注意入参CuratorFramework client, TreeCacheEvent even,和入参的方法getData();getType();treeCache.getListenable().addListener(new TreeCacheListener() {@Overridepublic void childEvent(CuratorFramework client, TreeCacheEvent even) throws Exception {ChildData data = even.getData();if(data != null){System.out.println(even.getType());switch ( even.getType()){case  NODE_ADDED:System.out.println("节点增加内容是:"+new String(data.getData())+";路径是:"+data.getPath());break;case NODE_UPDATED:System.out.println("NODE_UPDATED : "+ data.getPath() +"  数据:"+ new String(data.getData()));break;case NODE_REMOVED:System.out.println("NODE_REMOVED : "+ data.getPath() +"  数据:"+ new String(data.getData()));break;default:break;}}else {System.out.println("data is null : "+ even.getType());}}});//启动监听treeCache.start();//当前线程休眠待机Thread.sleep(500000);client.close();}
}

zookeeper的javaAPI使用相关推荐

  1. Zookeeper命令操作(初始Zookeeper、JavaAPI操作、分布式锁实现、模拟12306售票分布式锁、Zookeeper集群搭建、选举投票)

    Zookeeper命令操作(初始Zookeeper.JavaAPI操作.分布式锁实现.模拟12306售票分布式锁.Zookeeper集群搭建.选举投票) 1.初始Zookeeper Zookeeper ...

  2. Zookeeper之javaAPI的使用

    2019独角兽企业重金招聘Python工程师标准>>> Java程序操作Zookeeper 1.创建java项目并导入相关jar包 主要jar包在主目录下 项目需要的相关依赖的jar ...

  3. 2021年大数据ZooKeeper(五):ZooKeeper Java API操作

    目录 ZooKeeper Java API操作 引入maven坐标 节点的操作 ZooKeeper Java API操作 这里操作Zookeeper的JavaAPI使用的是一套zookeeper客户端 ...

  4. 学习笔记:快速入门ZooKeeper技术

    学习视频:黑马程序员 ZooKeeper 视频教程,快速入门 ZooKeeper 技术 学习资料:黑马程序员 公众号提供的文档资料链接 | 提取码:dor4) 本文最后更新于 2022-04-25,若 ...

  5. hadoop学习之路(5)

    HadoopHA 1.zookeeper配置 zoo.cfg # The number of milliseconds of each tick tickTime=2000 # The number ...

  6. Java三大技术平台是什么?

    为了使软件开发人员.服务提供商和设备生产商可以针对特定的市场进行开发,SUN公司将Java划分为三个技术平台,它们分别是 JavaSE. JavaEE和 JavaME. Java SE( Java P ...

  7. Hadoop分布式存储和计算MapReduce的使用以及Hive数据仓库等内容精讲

    一,zookeeper环境搭建 ZooKeeper致力于为分布式应用提供一个高性能.高可用,且具有严格顺序访问控制能力的分布式协调服务 服务器IP 主机名 myid的值 192.168.186.133 ...

  8. Zookeeper常用命令操作,javaAPI操作之Curator框架 API

    浅谈:Zookeeper Zookeeper 概念 • Zookeeper 是 Apache Hadoop 项目下的一个子项目,是一个树形目录服务. • Zookeeper 翻译过来就是 动物园管理员 ...

  9. Zookeeper 4 Zookeeper JavaAPI 操作 4.9 模拟12306 售票案例

    Zookeeper [黑马程序员Zookeeper视频教程,快速入门zookeeper技术] 文章目录 Zookeeper 4 Zookeeper JavaAPI 操作 4.9 模拟12306 售票案 ...

最新文章

  1. 树莓派安装openCV做图像识别
  2. 用户不在 sudoers文件中,此事将被报告。
  3. C++类的定义和声明
  4. html 入门例子(二) 折行
  5. 成功解决AttributeError: module ‘tensorflow‘ has no attribute ‘contrib‘
  6. 基于RBGD的mapping
  7. 理解C#泛型运作原理
  8. 用户模块开发 分类模块 商品模块 购物车模块
  9. Asp.net(C#)利用File Field多文件上传
  10. 工业数据存储数据库选型比较
  11. 如何在OTN网站下载Grid方法(Oracle RAC)
  12. [TF进阶] 循环神经网络
  13. 怎么把kux格式转换成mp4?完美转换优酷kux格式
  14. pr导出视频的每一帧
  15. Mecanim 工作流
  16. Centos7 安装teamviewer
  17. python抓取网页图片教程_Python实现简单网页图片抓取完整代码实例
  18. linux 打包zip
  19. 稻盛和夫:经营为何需要哲学
  20. 索尼的hlg是什么_索尼HLG的拍摄使用方法

热门文章

  1. U盘安装win7系统
  2. 网络编程06-服务器编程非阻塞IO、多路复用
  3. 德国面粉分类(转载)
  4. 种子搜索uTorrent被发现存在重大漏洞
  5. 【Scratch案例实操】scratch星际迷航 scratch编程案例教学 少儿编程教案
  6. Android和Java一些知识点小结
  7. 哪款app看计算机书籍好,实测六款主流看图软件,看看哪一款更轻小、便捷、实用?...
  8. 魔兽3 dota不能全屏
  9. C# 屏幕控件截屏 屏幕截屏 截屏
  10. 交互设计必备的10个网站|每一个都是精挑细选,请低调使用