Zookeeper入门demo1
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相关推荐
- 【Zookeeper实战】Zookeeper入门到实战看这篇就够了
1. 前言 在上一篇[Zookeeper入门]相关概念总结 中已经完美的讲解了 Zookeeper入门 相关概念总结,接下来讲讲ZooKeeper 实战使用. 这篇文章简单给演示一下 ZooKeepe ...
- Zookeeper入门总结
什么是Zookeeper 官方定义: zookeeper是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态 ...
- ZooKeeper入门指南
ZooKeeper入门指南 目录: 入门:使用ZooKeeper协调分布式应用程序 先决条件 下载 独立操作 管理ZooKeeper存储 连接到ZooKeeper 编程到ZooKeeper 运行复制的 ...
- 【转】Zookeeper入门
原文出处:Zookeeper入门看这篇就够了 Zookeeper是什么 官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式 ...
- 尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】
视频地址:[尚硅谷]大数据技术之Zookeeper 3.5.7版本教程_哔哩哔哩_bilibili 尚硅谷大数据技术Zookeeper教程-笔记01[Zookeeper(入门.本地安装.集群操作)] ...
- Zookeeper 入门学习
往期博客目录 1. 详解Linux(基础篇) 2. 详解Linux(进阶篇) 3. Git&GitHub(基础) 4. Git&GitHub(进阶) 5. java多线程 6. Jav ...
- [转]Zookeeper入门看这篇就够了
Zookeeper是什么 官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名 ...
- ZooKeeper官方文档学习笔记02-ZooKeeper入门指南
本来以为学一篇都会很难很难,但是好像也没有那么难.虽然有些名词不太理解,但我决定后续学习中应该会遇到吧? 入门:使用ZooKeeper协调分布式应用程序 先决条件 下载 独立运行 1 选择一个合适的目 ...
- zookeeper入门学习《一》
Zookeeper的安装就不介绍了,mac上用 brew install zookeeper就行了,可以看到已经启动着. 下面是 zoo.cfg的主要配置 tickTime=2000 zoo ...
最新文章
- 学编程的不能不看的好文章
- 零基础学Python(第九章 循环控制【break】与【continue】)
- C编程实践:简单的通讯录
- Win10美吱er吱er,Win10修改默认字体的方法
- linux php cpu,获取Linux服务器性能CPU、内存、硬盘等使用率 PHP
- Windows 7中的远程桌面增强(Graphics Remoting, Remote Desktop)
- python basemap的安装
- python3.7输出语句_python3.4用循环往mysql5.7中写数据并输出的实现方法
- create方法 eslint关闭_详解create-react-app 自定义 eslint 配置
- HDU 1058 Humble Numbers(DP,数)
- 【模电】0007 有源滤波器2(二阶有源滤低通波器)
- 计算机机房岗位管理制度,机房管理规定-机房管理制度.doc
- 【计算机网络微课堂】1.3 三种交换方式:电路交换、分组交换和报文交换
- Python爬虫实战之爬取饿了么信息
- bitcoin-NG的分析
- Java Web从入门到实战
- eulerOS 欧拉OS 审计修复日记
- 亚马逊云科技的区域和可用区概念解释
- java 线程锁Lock
- vscode 设置自动换行
热门文章
- 手把手教你如何Vue项目打包dist文件并Tomcat发布【超级详细】
- 我不会选IPad当电子书用 - 原因有二
- 埃夫特机器人离线编程软件_埃夫特ER-Factory数字化工厂软件重磅升级
- Java进阶导图xmind版本
- CycleGAN生成车牌记录
- 机器人笔记psv中文_机器人笔记精英版
- 软件项目管理 7.4.5.进度计划编排-敏捷计划
- Android开发之六:SurfaceView、ANativeWindow原生绘制
- Excel表格中根据身份证号获取出生日期、生日、年龄、性别、工龄、退休龄
- 大圣公众号机器人APP后台可控机器人部分源码