ZooKeeper(3.4.5) - 开源客户端 Curator(2.7.0) 的简单示例
一、创建会话
1. 创建会话
package com.huey.dream.demo; import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry; /**
* 使用Curator创建会话
* @author huey
* @version 1.0
* @created 2015-3-1
*/
public class CarutorDemo { public static void main(String[] args) throws Exception {
CuratorFramework client = CuratorFrameworkFactory.newClient(
"192.168.1.109:2181", // 服务器列表
5000, // 会话超时时间,单位毫秒
3000, // 连接创建超时时间,单位毫秒
new ExponentialBackoffRetry(1000, 3) // 重试策略
);
client.start(); client.close();
}
}
2. 使用链式风格的API接口创建会话
package com.huey.dream.demo; import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry; /**
* 使用链式风格的API接口创建会话
* @author huey
* @version 1.0
* @created 2015-3-1
*/
public class CarutorDemo { public static void main(String[] args) throws Exception {
CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString("192.168.1.109:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(3000)
.retryPolicy(new ExponentialBackoffRetry(1000, 3))
.build();
client.start(); client.close();
}
}
二、创建节点
package com.huey.dream.demo; import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.CreateMode; /**
* 使用Curator创建节点
* @author huey
* @version 1.0
* @created 2015-3-1
*/
public class CarutorDemo { public static void main(String[] args) throws Exception {
CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString("192.168.1.109:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(3000)
.retryPolicy(new ExponentialBackoffRetry(1000, 3))
.build();
client.start(); client.create()
.creatingParentsIfNeeded()
.withMode(CreateMode.PERSISTENT)
.forPath("/zk-huey/cnode", "hello".getBytes()); client.close();
}
}
三、删除节点
package com.huey.dream.demo; import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.CreateMode; /**
* 使用Curator删除节点
* @author huey
* @version 1.0
* @created 2015-3-1
*/
public class CarutorDemo { public static void main(String[] args) throws Exception {
CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString("192.168.1.109:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(3000)
.retryPolicy(new ExponentialBackoffRetry(1000, 3))
.build();
client.start(); client.create()
.creatingParentsIfNeeded()
.withMode(CreateMode.PERSISTENT)
.forPath("/zk-huey/cnode", "hello".getBytes()); client.delete()
.guaranteed()
.deletingChildrenIfNeeded()
.withVersion(-1)
.forPath("/zk-huey"); client.close();
}
}
四、读取节点数据
package com.huey.dream.demo; import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.data.Stat; /**
* 使用Curator读取节点数据
* @author huey
* @version 1.0
* @created 2015-3-1
*/
public class CarutorDemo { public static void main(String[] args) throws Exception {
CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString("192.168.1.109:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(3000)
.retryPolicy(new ExponentialBackoffRetry(1000, 3))
.build();
client.start(); client.create()
.creatingParentsIfNeeded()
.withMode(CreateMode.PERSISTENT)
.forPath("/zk-huey/cnode", "hello".getBytes()); Stat stat = new Stat();
byte[] nodeData = client.getData()
.storingStatIn(stat)
.forPath("/zk-huey/cnode");
System.out.println("NodeData: " + new String(nodeData));
System.out.println("Stat: " + stat); client.close();
}
}
五、更新节点数据
package com.huey.dream.demo; import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.data.Stat; /**
* 使用Curator更新节点数据
* @author huey
* @version 1.0
* @created 2015-3-1
*/
public class CarutorDemo { public static void main(String[] args) throws Exception {
CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString("192.168.1.109:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(3000)
.retryPolicy(new ExponentialBackoffRetry(1000, 3))
.build();
client.start(); client.create()
.creatingParentsIfNeeded()
.withMode(CreateMode.PERSISTENT)
.forPath("/zk-huey/cnode", "hello".getBytes()); client.setData()
.withVersion(-1)
.forPath("/zk-huey/cnode", "world".getBytes()); client.close();
}
}
六、 获取子节点列表
package com.huey.dream.demo; import java.util.List; import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.CreateMode; /**
* 使用Curator
* @author huey
* @version 1.0
* @created 2015-3-1
*/
public class CarutorDemo { public static void main(String[] args) throws Exception {
CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString("192.168.1.109:2181")
.sessionTimeoutMs(5000)
.connectionTimeoutMs(3000)
.retryPolicy(new ExponentialBackoffRetry(1000, 3))
.build();
client.start(); client.create()
.creatingParentsIfNeeded()
.withMode(CreateMode.PERSISTENT)
.forPath("/zk-huey/cnode", "hello".getBytes()); List<String> children = client.getChildren().forPath("/zk-huey");
System.out.println("Children: " + children); client.close();
}
}
ZooKeeper(3.4.5) - 开源客户端 Curator(2.7.0) 的简单示例的更多相关文章
- Zookeeper开源客户端Curator之创建会话
		
前面Zookeeper的链接使用的都是其提供的原生代码,实际开发过程中非常底层的细节开发工作如连接重连,反复注册等耗费开发人员大量的工作精力并且重复工作.而开源客户端Curator的出现解决了该类问题 ...
 - 八:Zookeeper开源客户端Curator的api测试
		
curator是Netflix公司开源的一套ZooKeeper客户端,Curator解决了很多ZooKeeper客户端非常底层的细节开发工作.包括连接重连,反复注册Watcher等.实现了Fluent ...
 - Zookeeper开源客户端Curator的使用
		
开源zk客户端-Curator 创建会话: RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,3); CuratorFramewor ...
 - zookeeper开源客户端curator
		
zookeeper的原生api相对来说比较繁琐,比如:对节点添加监听事件,当监听触发后,我们需要再次手动添加监听,否则监听只生效一次:再比如,断线重连也需要我们手动代码来判断处理等等.对于curato ...
 - Zookeeper开源客户端Curator之事件监听详解
		
Curator对Zookeeper典型场景之事件监听进行封装,提供了使用参考.这篇博文笔者带领大家了解一下Curator的实现方式. 引入依赖 对于Curator封装Zookeeper的典型场景使用都 ...
 - zookeeper生产最广泛使用java客户端curator介绍及其它客户端比较
		
关于zookeeper的原理解析,可以参见zookeeper核心原理详解,本文所述大多数实践基于对zookeeper原理的首先理解. Curator是Netflix公司开源的一个Zookeeper客户 ...
 - 【分布式】Zookeeper使用--开源客户端
		
一.前言 上一篇博客已经介绍了如何使用Zookeeper提供的原生态Java API进行操作,本篇博文主要讲解如何通过开源客户端来进行操作. 二.ZkClient ZkClient是在Zookeepe ...
 - Zookeeper客户端Curator使用详解
		
Zookeeper客户端Curator使用详解 前提 最近刚好用到了zookeeper,做了一个基于SpringBoot.Curator.Bootstrap写了一个可视化的Web应用: zookeep ...
 - 7.5  zookeeper客户端curator的基本使用 + zkui
		
使用zookeeper原生API实现一些复杂的东西比较麻烦.所以,出现了两款比较好的开源客户端,对zookeeper的原生API进行了包装:zkClient和curator.后者是Netflix出版的 ...
 
随机推荐
- Java学习笔记(一):数据类型与变量
			
数据类型 Java中存在2种数据类型,下面我们来详解一下: 基本数据类型: 引用数据类型: 可以用一张表来记录: 基本数据类型 整型 byte:1个字节8位,取值范围为:[-128, 127],直接写 ...
 - OS X Git连接github
			
1. 运行到.local 2. cd ~/.ssh查看文件是否存在 3. ssh-keygen(创建public & private key) 4. 或者运行如下命令:cd ~/.ssh &a ...
 - MyEclipse10.7的 at com.genuitec.eclipse.ast.deploy.core.Deployment.<init>
			
前两天由于换了MyEclipse新版本之后,我的MyEclipse的Servers就不能正常使用了,也就是不能发布Web项目了.出现了空指针的异常,并产生了这个错误: atcom.genuitec ...
 - 在Linux下怎么确定哪个网卡对应哪个接口?
			
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
 - Codeforces Round #330 (Div. 1) C. Edo and Magnets 暴力
			
C. Edo and Magnets Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/594/pr ...
 - 关于打包android自己编写的第三方library提供jar
			
最近公司要求把应用的接口写成sdk提供给别人使用,写好了之后,发现导出来jar包怎么使用也有误,在运行时会报java.lang.NoClassDefFoundError的错,于是纠结了很久,突然在博客 ...
 - Android_通过传感器抓小偷
			
package com.beyond.phonestolen; import android.hardware.Sensor; import android.hardware.SensorEvent; ...
 - RabbitMQ+PHP 消息队列环境配置
			
参考文档:http://www.cnblogs.com/phpinfo/p/4104551...http://blog.csdn.net/historyasamirror/ar... 依赖包安装 yu ...
 - 嵌入式系统 Boot Loader 技术内幕
			
转载:http://www.ibm.com/developerworks/cn/linux/l-btloader/index.html 1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统 ...
 - 小白日记26:kali渗透测试之提权(六)--收集敏感信息,隐藏痕迹
			
提权后操作 提权之后,要收集目标系统的重要信息LINUX /etc/resolv.conf #查看DNS配置,是否可以进行DNS篡改或劫持 /etc/passwd #存放账 ...