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 操作节点,对页面中的表格实现增.删.查.改操作 点击"增加"超链接时,将表格中的第一条数据添加到表格的末尾 ...
随机推荐
- 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1
基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1 Jenkins的Master-Slave分布式构建 什么是Master-Slave分布式构建 Jenkins的Master-S ...
- Chapter05 流程控制(Process Control)
目录 Chapter05 流程控制 5.1 顺序控制 5.2 分支控制 if-else 单分支基本语法: 双分支基础语法: 多分支基础语法 5.3 嵌套分支 5.4 switch分支结构 5.5 Fo ...
- 面试题--Nginx
Nginx面试题 整理自网络,侵权删 1.请解释一下什么是Nginx? Nginx是一个web服务器和反向代理服务器,用于http.https.smtp.pop3和IMAP协议 2.请列举Nginx的 ...
- 微信小程序获取手机号
wxml 代码: <!-- 授权 --> <button type="primary" open-type="getUserInfo" bin ...
- tp5用户id登录进行权限设置
HTML代码:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- WinDbg调试托管程序环境问题总结
基本环境搭建及安装 安装 有2个方式可以安装WinDbg. 新版 安装WinDbg Preview 在商店里搜WinDbg直接就可以安装,这里安装的版本是x64版本.x64版本的WinDbg其实是可以 ...
- java web中统一结果返回封装类JsonResult
废话不多说,直接上代码,源代码是慕课网老师风间影月写的,我拿来直接用了. package com.yb.entity; import java.util.List; import com.faster ...
- javaweb项目中关于配置文件web.xml的解析
一..启动tomcat,加载项目中的web.xml文件,创建servercontext上下文对象. 可以通过servercontext对象在应用中获取web.xml文件中的值. web应用加载的顺序与 ...
- 内网渗透----域环境搭建(server 2012)
先确定两台服务器相通 1.配置静态IP与DNS 2.配置域服务 点击服务器管理器-添加角色和功能-下一步-添加AD域服务: 3.提升为域控制器 安装完成后,可在旗帜处选择提升为域控制器 添加新林 添加 ...
- struts-032利用工具 PythonGUI
# -*- coding: utf-8 -*- import requests from Tkinter import * class App: def __init__(self, master): ...