zookeeper操作节点代码
package cn.hbaf.zookeeper_api; 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 { /*
节点的watch机制
*/ @Test
public void watchZnode() throws Exception {
//1: 定制重试策略
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,1); String conectionStr = "192.168.52.100:2181,192.168.52.110:2181,192.168.52.120:2181"; CuratorFramework client = CuratorFrameworkFactory.newClient(conectionStr,8000,8000,retryPolicy); client.start();
//4:创建TreeCache对象,指定要监控的节点路径
TreeCache treeCache = new TreeCache(client,"/hello2"); // 5:自定义一个监听器
treeCache.getListenable().addListener(new TreeCacheListener() {
@Override
public void childEvent(
CuratorFramework curatorFramework, TreeCacheEvent treeCacheEvent)
throws Exception {
ChildData data = treeCacheEvent.getData();
if (data != null) {
switch (treeCacheEvent.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(200000);
} /*
获取节点数据
*/ @Test
public void getZnodeData() throws Exception {
//定制重试策略
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,1); String conectionStr = "192.168.52.100:2181,192.168.52.110:2181,192.168.52.120:2181"; CuratorFramework client = CuratorFrameworkFactory.newClient(conectionStr,8000,8000,retryPolicy); client.start(); byte [] bytes = client.getData().forPath("/hello");
System.out.println(new String(bytes));
client.close(); } /*
设置节点数据
*/ @Test
public void setZnodeData() throws Exception {
//定制重试策略
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,1); String conectionStr = "192.168.52.100:2181,192.168.52.110:2181,192.168.52.120:2181"; CuratorFramework client = CuratorFrameworkFactory.newClient(conectionStr,8000,8000,retryPolicy); client.start(); client.setData().forPath("/hello","zookeeper".getBytes()); client.close(); } /*
创建临时节点
*/ @Test
public void createTmpZnode() throws Exception {
//1:定制重试策略
/*
param1:重试时间间隔
param2:重试最大次数
* */
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,1);
//2:获取一个客户端对象
/*
* param1:服务器列表
* param2:会话超时时间
* param3:链接超时时间
* param4:重试策略
* */
String connectionStr = "192.168.52.100:2181,192.168.52.110:2181,192.168.52.120:2181";
CuratorFramework client = CuratorFrameworkFactory.newClient(connectionStr,8000,8000,retryPolicy); //3:开启客户端
client.start(); //4:创建节点
client.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL).forPath("/hello3","world".getBytes()); Thread.sleep(5000);
//5:关闭客户端
client.close();
}
/*
创建永久节点
*/ @Test
public void createZnode() throws Exception {
//1:定制重试策略
/*
param1:重试时间间隔
param2:重试最大次数
* */
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,1);
//2:获取一个客户端对象
/*
* param1:服务器列表
* param2:会话超时时间
* param3:链接超时时间
* param4:重试策略
* */
String connectionStr = "192.168.52.100:2181,192.168.52.110:2181,192.168.52.120:2181";
CuratorFramework client = CuratorFrameworkFactory.newClient(connectionStr,8000,8000,retryPolicy); //3:开启客户端
client.start(); //4:创建节点
client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("/hello2","world".getBytes()); //5:关闭客户端
client.close();
}
}
zookeeper操作节点代码的更多相关文章
- zookeeper客户端使用原生JavaApi操作节点
1.引入依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zook ...
- dubbo源码解析-zookeeper创建节点
前言 在之前dubbo源码解析-本地暴露中的前言部分提到了两道高频的面试题,其中一道dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者和订阅者还能通信吗?在上周的dubbo源码 ...
- zookeeper实战:SingleWorker代码样例
我们需要一个“单点worker”系统,此系统来确保系统中定时任务在分布式环境中,任意时刻只有一个实例处于活跃:比如,生产环境中,有6台机器支撑一个应用,但是一个应用中有30个定时任务,这些任务有些必须 ...
- 第8章 ZooKeeper操作
目录 8.1 集群环境搭建 1.上传ZooKeeper安装文件 2.编写配置文件 3.拷贝ZooKeeper安装信息到其它节点 4.修改其它节点配置 5.启动ZooKeeper 6.查看启动状态 7. ...
- Zookeeper操作
Zookeeper操作 注意搭建: 1.集群规模不小于3个节点 2.服务器之间系统时间要保持一致 1.搭建步骤: 1.解压安装包 2.设置zookeeper环境变量 3.修改配置文件————zoo.c ...
- Entity Framework 实体框架的形成之旅--几种数据库操作的代码介绍(9)
本篇主要对常规数据操作的处理和实体框架的处理代码进行对比,以便更容易学习理解实体框架里面,对各种数据库处理技巧,本篇介绍几种数据库操作的代码,包括写入中间表操作.联合中间表获取对象集合.递归操作.设置 ...
- Ignite集群管理——基于Zookeeper的节点发现
Ignite支持基于组播,静态IP,Zookeeper,JDBC等方式发现节点,本文主要介绍基于Zookeeper的节点发现. 环境准备,两台笔记本电脑A,B.A笔记本上使用VMware虚拟机安装了U ...
- JS---DOM---点击操作---节点的方式---案例
点击操作---节点的方式---案例 案例1:点击按钮,设置p变色---节点的方式做 <!DOCTYPE html> <html lang="en"> < ...
- jQuery 中使用 DOM 操作节点,对页面中的表格实现增、删、查、改操作
查看本章节 查看作业目录 需求说明: 在 jQuery 中使用 DOM 操作节点,对页面中的表格实现增.删.查.改操作 点击"增加"超链接时,将表格中的第一条数据添加到表格的末尾 ...
随机推荐
- Chapter03 Java变量
Chapter03 变量 目录 Chapter03 变量 3.1 为什么需要变量 3.1.1 一个程序就是一个世界 3.1.2 变量是程序的基本组成单位 3.1.3 简单原理图 3.2 变(变化)量( ...
- 【FAQ】接入HMS Core推送服务过程中一些常见问题总结
HMS Core 推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道.开发者通过集成推送服务,可以向客户端应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活 ...
- linux作业--第五周
1.简述osi七层模型和TCP/IP五层模型 一.OSI参考模型 (1) OSI的来源 OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO ...
- linux 文件查找 find
find 是实时查找工具,通过遍历指定路径完成文件查找 特点: 查找速度略慢 精确查找 实时查找 查找条件丰富 1.对每个目录先处理目录内的文件,再处理目录本身 find /data/test -de ...
- 为什么我的MySQL会“抖”一下?
不知道你有没有遇到过这样的场景,一条 SQL 语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短. 1)InnoDB 在处理 ...
- 【数据库】优化SQL语言
第1章数据模型设计 第1条:确保所有表都有主键 [1]当表缺少主键时,会出现各种问题,所有表都必须有一列(或多列)设置为主键. [2]主键应当具备的特征 唯一性,值非空,不可变,尽可能简单 [3]不要 ...
- CF772D题解
什么阴间十进制状压 题意:给定 $ n $ 数字,求定义函数 $ G(x) $ 能够表示 满足"十进制按位与为 $ x $"的集合的平方和之和乘上 \(x\),求 \(\bigop ...
- Springboot项目 配置数据库连接属性后,启动项目报错
Springboot项目 配置数据库连接属性后,启动项目报错,错误如下: 错误原因分析: 1.连接信息配置错误 当使用properties为配置文件时,如图所示,上面的 spring.datasour ...
- ArcMap操作随记(2)
1.空间校正 变换-仿射 仅发生偏移 橡皮页变化 形状改变 变换-投影 旋转,改变角度 变换-相似 改变大小.形状不变 2.计算行列号 Int(([POINT_Y]-1273.143242)/30)+ ...
- 详解 Java 内部类
内部类在 Java 里面算是非常常见的一个功能了,在日常开发中我们肯定多多少少都用过,这里总结一下关于 Java 中内部类的相关知识点和一些使用内部类时需要注意的点. 从种类上说,内部类可以分为四类: ...