内容简介:1.构造函数说明
Java 客户端
- pom.xml 文件中引入相关api
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.5.4-beta</version>
</dependency>
- 创建连接
/**
* 创建 zookeeper 会话
* <p>
* <p>
* zookeeper 客户端 和 服务端创建会话的过程是异步的。也就是客户度通过构造方法创建会话后立即返回,此时的连接并没有完全建立。
* 当真正的会话建立完成后,zk服务端会给客户端通知一个事件,客户端获取通知之后在表明连接正在建立。
*/
public class ZooKeeperClientSession implements Watcher {
//用于等待zk服务端通知
private static CountDownLatch latch = new CountDownLatch(1);
public static void main(String[] args) throws Exception {
ZooKeeper zooKeeper = new ZooKeeper("127.0.0.1:2183", 5000, new ZooKeeperClientSession());
System.out.println(zooKeeper.getState());
latch.await();
long sessionId = zooKeeper.getSessionId();
byte[] sessionPasswd = zooKeeper.getSessionPasswd();
System.out.println(zooKeeper.getSessionId());
/**
* 利用 sessionId 和 sessionPasswd 复用会话连接
*/
ZooKeeper zooKeeper1 = new ZooKeeper("127.0.0.1:2183",
5000,
new ZooKeeperClientSession(),
sessionId,
sessionPasswd);
System.out.println(zooKeeper1.getSessionId());
}
/**
* 处理 zookeeper 服务端的 Watcher 通知
* @param watchedEvent
*/
public void process(WatchedEvent watchedEvent) {
System.out.println("receive watch event : " + watchedEvent);
if (Event.KeeperState.SyncConnected == watchedEvent.getState()) {
latch.countDown();
}
}
}
1.构造函数说明
ZooKeeper(String connectString, int sessionTimeout, Watcher watcher)
ZooKeeper(String connectString,
int sessionTimeout,
Watcher watcher,
boolean canBeReadOnly)
ZooKeeper(String connectString,
int sessionTimeout,
Watcher watcher,
long sessionId,
byte[] sessionPasswd)
ZooKeeper(String connectString,
int sessionTimeout,
Watcher watcher,
long sessionId,
byte[] sessionPasswd,
boolean canBeReadOnly)
| 参数 | 作用 |
|---|---|
| connectString | zk服务器列表,由英文逗号分开的字符串,例如:127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183;也可以是带有目录的字符:127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183/zk-book |
| sessionTimeout | 会话超时时间,以毫秒为单位。在一个会话周期内,zk客户端和服务端通过心跳来检查连接的有效性,一旦在sessionTimeout时间内没有进行心跳检测,则会话失效 |
| watcher | zk允许客户端在构造方法中传入一个Watcher接口实现类作为事件通知处理器 |
| sessionId、sessionPasswd | 利用sessionId 和 sessionPasswd 确保复用会话连接 |
| canBeReadOnly | 用于标识当前会话是否支付只读模式。在zk集群模式中,如果一台集群和集群中过半以上的机器都都失去了网络连接,那么这个机器将不再处理客户端请求,包括读写请求。但在某些情况下出现类似问题,我们希望该台机器能够处理读请求,此时为 read-only 模式 |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 支付宝客户端架构解析:iOS 客户端启动性能优化初探
- 自己动手做数据库客户端: BashSQL开源数据库客户端
- 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
- 客户端HTTP缓存
- 简析移动客户端安全
- 配置Hadoop集群客户端
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Alone Together
Sherry Turkle / Basic Books / 2011-1-11 / USD 28.95
Consider Facebookit’s human contact, only easier to engage with and easier to avoid. Developing technology promises closeness. Sometimes it delivers, but much of our modern life leaves us less connect......一起来看看 《Alone Together》 这本书的介绍吧!