ZooKeeper客户端Curator使用一 创建连接
2017-05-16 21:58
555 查看
21:59:25 641 ℃ 0
评论
首先,对于ZooKeeper的连接就是创建一个CuratorFramework实例的过程.一般会把CuratorFramework实例的创建交给工厂类CuratorFrameworkFactory,使用工厂方法newClient()方法实例化.
1. connectString参数是ZooKeeper服务的地址和端口号,对于集群情况下的多个ZooKeeper示例,之间使用逗号分隔.比如
retryPolicy参数是指在连接ZK服务过程中重新连接测策略.在它的实现类ExponentialBackoffRetry(int baseSleepTimeMs, int maxRetries)中,baseSleepTimeMs参数代表两次连接的等待时间,maxRetries参数表示最大的尝试连接次数
CuratorFramework示例创建完成,代表ZooKeeper已经连接成功,调用start()方法打开连接,在使用完毕后调用close()方法关闭连接
newClient()方法还存在一个重载方法,上面的代码中使用的是newClient(String connectString, RetryPolicy retryPolicy),除该方法外,它还可以指定会话(session)的过期时间以及连接的超时时间.
在ZooKeeper官网中,有这样一句话:
You only need one CuratorFramework object for each ZooKeeper cluster you are connecting
这句话告诉我们在一个应用中,只需要一个ZK实例就足够了.CuratorFramework实例都是线程安全的,你应该在你的应用中共享同一个CuratorFramework实例.根据ZooKeeper的这个特点,可以选择使用单例模式创建一个ZK连接:
Tags:zookeeper Curator RetryPolic Framework zookeeper
上一篇:先验概率、后验概率以及共轭先验
下一篇:zookeeper 数据与存储源码实现
ZooKeeper客户端Curator使用一 创建连接
原文 http://blog.csdn.net/yin380697242/article/details/52293771 2016-08-2321:59:25 641 ℃ 0
评论
如何创建一个ZK连接
工厂方法newClient()
public static void main(String[] args) { final String connectString = "127.0.0.1:2181"; RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); CuratorFramework client = CuratorFrameworkFactory.newClient(connectString, retryPolicy); client.start(); System.out.println("zk operation"); client.close(); }
首先,对于ZooKeeper的连接就是创建一个CuratorFramework实例的过程.一般会把CuratorFramework实例的创建交给工厂类CuratorFrameworkFactory,使用工厂方法newClient()方法实例化.
1. connectString参数是ZooKeeper服务的地址和端口号,对于集群情况下的多个ZooKeeper示例,之间使用逗号分隔.比如
String connectString = "127.0.0.1:2181,127.0.0.2:2181,127.0.0.3:2181";
retryPolicy参数是指在连接ZK服务过程中重新连接测策略.在它的实现类ExponentialBackoffRetry(int baseSleepTimeMs, int maxRetries)中,baseSleepTimeMs参数代表两次连接的等待时间,maxRetries参数表示最大的尝试连接次数
CuratorFramework示例创建完成,代表ZooKeeper已经连接成功,调用start()方法打开连接,在使用完毕后调用close()方法关闭连接
newClient()方法还存在一个重载方法,上面的代码中使用的是newClient(String connectString, RetryPolicy retryPolicy),除该方法外,它还可以指定会话(session)的过期时间以及连接的超时时间.
public static void main(String[] args) { final String connectString = "127.0.0.1:2181"; RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); CuratorFramework client = CuratorFrameworkFactory.newClient(connectString, 3000, 1000, retryPolicy); client.start(); System.out.println("zk operation"); client.close(); }
Builder()方法
相比于使用newClient()方法创建连接外,还可以使用builder()方法来控制更多的参数,代码如下:public static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); CuratorFramework client = CuratorFrameworkFactory.builder().connectString("127.0.0.1:2181") .retryPolicy(retryPolicy).sessionTimeoutMs(1000 * 6).connectionTimeoutMs(1000 * 6).build(); client.start(); System.out.println("zk operation"); client.close(); }
单例模式创建一个ZK连接
在ZooKeeper官网中,有这样一句话:You only need one CuratorFramework object for each ZooKeeper cluster you are connecting
这句话告诉我们在一个应用中,只需要一个ZK实例就足够了.CuratorFramework实例都是线程安全的,你应该在你的应用中共享同一个CuratorFramework实例.根据ZooKeeper的这个特点,可以选择使用单例模式创建一个ZK连接:
import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; public class ClientSingleton { private static CuratorFramework client = null; private ClientSingleton() { RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); client = CuratorFrameworkFactory.builder().connectString("127.0.0.1:2181").retryPolicy(retryPolicy) .sessionTimeoutMs(1000 * 6).connectionTimeoutMs(1000 * 6).build(); } public static synchronized CuratorFramework newClient() { if (client == null) { new ClientSingleton(); } return client; } public static void start() { client.start(); } public static void close() { client.close(); } }
Tags:zookeeper Curator RetryPolic Framework zookeeper
上一篇:先验概率、后验概率以及共轭先验
下一篇:zookeeper 数据与存储源码实现
相关文章推荐
- ZooKeeper客户端Curator使用一 创建连接
- Zookeeper实例Curator API-使用curator来创建一个ZooKeeper客户端
- Zookeeper实例Curator API-使用Fluent风格的API接口来创建一个ZooKeeper客户端
- Zookeeper实例Curator API-使用curator来创建一个含隔离命名空间的ZooKeeper客户端
- 【Zookeeper源码二】Zookeeper 客户端创建连接过程分析
- ZooKeeper客户端curator介绍及使用
- 解决“远程会话已断开连接,因为访问被拒绝导致许可证存储的创建失败,请使用提升的权限运行远程桌面客户端”问题
- zookeeper使用(三)--Curator客户端操作zookeeper
- Zookeeper系列(十一)Zookeeper开源客户端之Curator基本使用
- Zookeeper系列三:Zookeeper客户端的使用(Zookeeper原生API如何进行调用、ZKClient、Curator)
- zookeeper 开源客户端Curator使用
- Zookeeper开源客户端框架Curator的简单使用
- Zookeeper入门之使用curator连接zookeeper并且进行节点的增删改查及ACL
- Zookeeper入门之使用curator连接zookeeper并且进行节点的增删改查及ACL
- zookeeper客户端curator使用手记
- Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)
- Zookeeper入门之使用curator连接zookeeper并且进行节点的增删改查及ACL
- Zookeeper客户端Curator使用详解
- ZooKeeper——Curator客户端基本使用(笔记)
- Zookeeper客户端基本操作java实现——创建连接、创建节点、添加修改节点内容、获取子节点、获取节点数据、删除节点