java代码

package cn.test;import org.apache.curator.RetryPolicy;
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.Test;public class ZookeeperAPITest {@Test//创建永久节点public void createZnode() throws Exception {//1.定制一个重试策略/*参数1:重试的间隔时间参数2:重试的最大次数 */RetryPolicy retry = new ExponentialBackoffRetry(1000, 1);//2.获取一个客户端对象/*参数1:要连接的zookeeper服务器列表参数2:会话的超时时间参数3:链接超时时间参数4:重试策略*/String connectString="node01:2181,node02:2181,node03:2181";CuratorFramework client = CuratorFrameworkFactory.newClient(connectString, 8000, 8000, retry);//3.开启客户端client.start();//4.创建节点  CreateMode:PERSISTENT永久节点 EPHEMERAL_SEQUENTIAL永久序列化节点EPHEMERAL临时节点EPHEMERAL_SEQUENTIAL临时序列化节点client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("/hello2", "world".getBytes());//5.关闭客户端client.close();}@Test//创建临时节点public void createTmpZnode() throws Exception {//1.定制一个重试策略/*参数1:重试的间隔时间参数2:重试的最大次数 */RetryPolicy retry = new ExponentialBackoffRetry(1000, 1);//2.获取一个客户端对象/*参数1:要连接的zookeeper服务器列表参数2:会话的超时时间参数3:链接超时时间参数4:重试策略*/String connectString="node01:2181,node02:2181,node03:2181";CuratorFramework client = CuratorFrameworkFactory.newClient(connectString, 8000, 8000, retry);//3.开启客户端client.start();//4.创建节点  CreateMode:PERSISTENT永久节点 EPHEMERAL_SEQUENTIAL永久序列化节点EPHEMERAL临时节点EPHEMERAL_SEQUENTIAL临时序列化节点client.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL).forPath("/hello3", "world".getBytes());//5.关闭客户端Thread.sleep(5000);//睡眠5秒,看临时节点client.close();}@Test//修改节点数据public void setZnode() throws Exception {//1.定制一个重试策略/*参数1:重试的间隔时间参数2:重试的最大次数 */RetryPolicy retry = new ExponentialBackoffRetry(1000, 1);//2.获取一个客户端对象/*参数1:要连接的zookeeper服务器列表参数2:会话的超时时间参数3:链接超时时间参数4:重试策略*/String connectString="node01:2181,node02:2181,node03:2181";CuratorFramework client = CuratorFrameworkFactory.newClient(connectString, 8000, 8000, retry);//3.开启客户端client.start();//4.修改节点数据 client.setData().forPath("/hello2", "world King".getBytes());//5.关闭客户端client.close();}@Test//获取节点数据public void getZnode() throws Exception {//1.定制一个重试策略/*参数1:重试的间隔时间参数2:重试的最大次数 */RetryPolicy retry = new ExponentialBackoffRetry(1000, 1);//2.获取一个客户端对象/*参数1:要连接的zookeeper服务器列表参数2:会话的超时时间参数3:链接超时时间参数4:重试策略*/String connectString="node01:2181,node02:2181,node03:2181";CuratorFramework client = CuratorFrameworkFactory.newClient(connectString, 8000, 8000, retry);//3.开启客户端client.start();//4.修改节点数据 byte[] bytes = client.getData().forPath("/hello2");System.out.println(new String(bytes));//5.关闭客户端client.close();}@Test//watch机制public void watchZnode() throws Exception {//1.定制一个重试策略/*参数1:重试的间隔时间参数2:重试的最大次数 */RetryPolicy retry = new ExponentialBackoffRetry(1000, 1);//2.获取一个客户端对象/*参数1:要连接的zookeeper服务器列表参数2:会话的超时时间参数3:链接超时时间参数4:重试策略*/String connectString="node01:2181,node02:2181,node03:2181";CuratorFramework client = CuratorFrameworkFactory.newClient(connectString, 8000, 8000, retry);//3.开启客户端client.start();//4.创建节点的cacheTreeCache treeCache = new TreeCache(client, "/hello2");//5.自定义一个监听器treeCache.getListenable().addListener(new TreeCacheListener() {@Overridepublic void childEvent(CuratorFramework client, TreeCacheEvent event) throws Exception {// TODO Auto-generated method stubChildData data = event.getData();if(data!=null) {switch (event.getType()) {case NODE_ADDED:System.out.println("监测到有节点新增");break;case NODE_REMOVED:System.out.println("监听到有节点被移除");break;case NODE_UPDATED:System.out.println("监控到节点被更新");break;default:break;}}}});//开始监听treeCache.start();Thread.sleep(100000);}
}

pom.xml配置

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.test</groupId><artifactId>zookeeper_api_demo</artifactId><version>0.0.1-SNAPSHOT</version><!-- <repositories> <repository><id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> </repositories> --><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>junit</groupId><artifactId>junit</artifactId><version>RELEASE</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.25</version></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>
</project>

Zookeeper入门demo1相关推荐

  1. 【Zookeeper实战】Zookeeper入门到实战看这篇就够了

    1. 前言 在上一篇[Zookeeper入门]相关概念总结 中已经完美的讲解了 Zookeeper入门 相关概念总结,接下来讲讲ZooKeeper 实战使用. 这篇文章简单给演示一下 ZooKeepe ...

  2. Zookeeper入门总结

    什么是Zookeeper 官方定义: zookeeper是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态 ...

  3. ZooKeeper入门指南

    ZooKeeper入门指南 目录: 入门:使用ZooKeeper协调分布式应用程序 先决条件 下载 独立操作 管理ZooKeeper存储 连接到ZooKeeper 编程到ZooKeeper 运行复制的 ...

  4. 【转】Zookeeper入门

    原文出处:Zookeeper入门看这篇就够了 Zookeeper是什么 官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式 ...

  5. 尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】

    视频地址:[尚硅谷]大数据技术之Zookeeper 3.5.7版本教程_哔哩哔哩_bilibili 尚硅谷大数据技术Zookeeper教程-笔记01[Zookeeper(入门.本地安装.集群操作)] ...

  6. Zookeeper 入门学习

    往期博客目录 1. 详解Linux(基础篇) 2. 详解Linux(进阶篇) 3. Git&GitHub(基础) 4. Git&GitHub(进阶) 5. java多线程 6. Jav ...

  7. [转]Zookeeper入门看这篇就够了

    Zookeeper是什么 官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名 ...

  8. ZooKeeper官方文档学习笔记02-ZooKeeper入门指南

    本来以为学一篇都会很难很难,但是好像也没有那么难.虽然有些名词不太理解,但我决定后续学习中应该会遇到吧? 入门:使用ZooKeeper协调分布式应用程序 先决条件 下载 独立运行 1 选择一个合适的目 ...

  9. zookeeper入门学习《一》

    Zookeeper的安装就不介绍了,mac上用 brew install zookeeper就行了,可以看到已经启动着. 下面是   zoo.cfg的主要配置 tickTime=2000    zoo ...

最新文章

  1. 学编程的不能不看的好文章
  2. 零基础学Python(第九章 循环控制【break】与【continue】)
  3. C编程实践:简单的通讯录
  4. Win10美吱er吱er,Win10修改默认字体的方法
  5. linux php cpu,获取Linux服务器性能CPU、内存、硬盘等使用率 PHP
  6. Windows 7中的远程桌面增强(Graphics Remoting, Remote Desktop)
  7. python basemap的安装
  8. python3.7输出语句_python3.4用循环往mysql5.7中写数据并输出的实现方法
  9. create方法 eslint关闭_详解create-react-app 自定义 eslint 配置
  10. HDU 1058 Humble Numbers(DP,数)
  11. 【模电】0007 有源滤波器2(二阶有源滤低通波器)
  12. 计算机机房岗位管理制度,机房管理规定-机房管理制度.doc
  13. 【计算机网络微课堂】1.3 三种交换方式:电路交换、分组交换和报文交换
  14. Python爬虫实战之爬取饿了么信息
  15. bitcoin-NG的分析
  16. Java Web从入门到实战
  17. eulerOS 欧拉OS 审计修复日记
  18. 亚马逊云科技的区域和可用区概念解释
  19. java 线程锁Lock
  20. vscode 设置自动换行

热门文章

  1. 手把手教你如何Vue项目打包dist文件并Tomcat发布【超级详细】
  2. 我不会选IPad当电子书用 - 原因有二
  3. 埃夫特机器人离线编程软件_埃夫特ER-Factory数字化工厂软件重磅升级
  4. Java进阶导图xmind版本
  5. CycleGAN生成车牌记录
  6. 机器人笔记psv中文_机器人笔记精英版
  7. 软件项目管理 7.4.5.进度计划编排-敏捷计划
  8. Android开发之六:SurfaceView、ANativeWindow原生绘制
  9. Excel表格中根据身份证号获取出生日期、生日、年龄、性别、工龄、退休龄
  10. 大圣公众号机器人APP后台可控机器人部分源码