第1关:会话创建与关闭
admin
2024-02-23 20:15:33
0

为了完成本关任务,你需要掌握: 1.ZooKeeper 的实例化; 2.实例化中不同参数的作用。

客户端连接ZooKeeper服务器

要连接 ZooKeeper 的服务器,实例化一个 ZooKeeper 对象即可,使用以下 API:

 
ZooKeeper(String connectString, int sessionTimeout, Watcher watcher)

其中 connectString 表示主机名和 ZooKeeper 服务器的端口。 sessionTimeout 表示 ZooKeeper 等待客户端通信的最长时间,该参数以毫秒为单位,一般设置超时时间为 5000-15000 毫秒。watcher 用于监听节点的状态变化,如果发生变化则通知此 watcher ,做出相应处理。如果不需要监听,则可设置为 null。

声明一个 ZooKeeper 的对象示例:

ZooKeeper zk = ("localhost:2181", 15000, null);

该对象会去连接本地 (localhost)zookeeper 服务器,设置会话超时时间为 15000 毫秒,且不监视节点状态变化。

断开ZooKeeper的连接

断开客户端和服务器之间的连接,直接使用实例化之后的 zk 对象,调用 close()方法即可,如下所示:

示例如下:

// 创建方法 createZKInstance,用于连接 ZooKeeper 服务器
private void createZKInstance() throws IOException {
// 创建 zk 实例
zk = new ZooKeeper("127.0.0.1:2181", 15000, null);
}// 创建方法 ZKClose,用于关闭连接
private void ZKClose() throws InterruptedException {
zk.close();
}

实现一个Watcher

为了从 ZooKeeper 接收消息,需要实现监视点。监视点主要是 Watcher 接口,该接口的定义如下:

public interface Watcher{
void process(WatcherEvent event);
}

Watcher 接口中没有实现任何内容,因此,我们可以在 process 方法中实现自己的逻辑。

public void process(WatchedEvent event) {
System.out.println(event);
}

在上面的代码中,我们简单的将事件输出,当然了,也可以根据实际需要,更改代码。

本节实训的示例程序及运行结果输出如下所示:

import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
public class test1 {
// 实现一个 Watcher
private Watcher wh = new Watcher() {
public void process(WatchedEvent event) {
System.out.println(event);
}
};// 创建方法 createZKInstance,用于连接 ZooKeeper 服务器
private void createZKInstance() throws IOException {
// 创建 zk 实例
zk = new ZooKeeper("127.0.0.1:2181", 15000, this.wh);}// 创建方法 ZKClose,用于关闭连接
private void ZKClose() throws InterruptedException {
// 关闭连接
zk.close();
}public static void main(String[] args) throws IOException, InterruptedException{
// 调用 reateZKInstance 方法,连接 ZooKeeper 服务器
reateZKInstance();
// 调用 ZKClose 方法,关闭连接
ZKClose();
}
}

执行结果:

WatchedEvent state:SyncConnected type:None path:null

该结果是 Watcher 监视器返回的结果,各个属性代表的意思会在后续讲解。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,实现客户端连接 ZooKeeper 服务器(需要实现 Watcher 监视)和断开的功能。

import java.io.IOException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
public class test1 {// 初始化 ZooKeeper 实例private ZooKeeper zk;// 实现一个 Watcher// 请在此处编写代码/********* Begin *********/private Watcher wh = new Watcher() {  public void process(WatchedEvent event) {  System.out.println(event);  }  
};/********* End *********/// 连接 ZooKeeper 服务器private void createZKInstance() throws IOException {// 请在此处编写代码/********* Begin *********/zk = new ZooKeeper("127.0.0.1:2181", 15000, this.wh);/********* End *********/}// 断开连接private void ZKClose() throws InterruptedException {// 请在此处编写代码/********* Begin *********/zk.close();  /********* End *********/}public static void main(String[] args) throws IOException, InterruptedException{test1 test = new test1();//  连接 ZooKeeper 服务器test.createZKInstance();// 断开连接test.ZKClose();}
}

上一篇:30_log阶段

下一篇:Gcware Python 接口(7)

相关内容

热门资讯

你可不可一给我一个奇妙符 你可不可一给我一个奇妙符可以! 但是我这个奇妙符有点大,必须要你放开、敞开、打开心门,才能容纳得下。...
求几部都市类的修真小说 要YY... 求几部都市类的修真小说 要YY的蛇血欲焰,未删节有H,嘎嘎
枫桥夜泊写景诗句 枫桥夜泊写景诗句《枫桥夜泊》景物描写的诗句是 “月落乌啼霜满天,江枫渔火对愁眠。” 枫桥夜泊张继 〔...
有除法口诀吗 有除法口诀吗除法口诀其实就是基于乘法口诀,所以把乘法口诀背诵好就好了。没有,一般数学只有乘法口诀
武力能不能征服天下 辩论 武力能不能征服天下 辩论请举例说明“武力不能征服天下”的证据(详细的说明)武力征服天下只能是暂时性的...
蒹葭苍苍,白露为霜,所谓一人,... 蒹葭苍苍,白露为霜,所谓一人,在水一方。里面含的意思是什么?蒹葭苍苍:芦苇密密又苍苍(蒹葭指的是芦苇...
暑假带孩子去张家界五日游报团价... 暑假带孩子去张家界五日游报团价格,张家界5日游报团多少钱,省钱避坑攻略 最近我决定带着孩子来一场说...
上半年多家文旅公司亏损,桂林旅... 漓江游船项目 李凯旋/摄 本报(chinatimes.net.cn)记者李凯旋 北京报道 《华夏时报...
矿石收音机怎么制作,要什么材料... 矿石收音机怎么制作,要什么材料?我小时候制作过矿石收音机。我有这方面的书籍资料,很简单。主要零件有:...
是不是他忘了我呢! 是不是他忘了我呢!你的问题很含糊你说是不是他忘了你,这个要看你们是什么关系,如果你们是男女恋爱关系的...
网络玄幻小说合集32什么时候出... 网络玄幻小说合集32什么时候出?等了巨久了骗子的别来啊,别整天发些假资源来骗人目前只出到V31,旅窝...
芳村有出了什么名人和政治人物啊... 芳村有出了什么名人和政治人物啊啊??芳村有出了什么名人和政治人物啊啊?? 美国著名政治家陈香梅、现...
陆汉振的生平 陆汉振的生平 陆汉振十几岁的时候,小小的成功之后,陆汉振已不满足于靠简单的手工劳动方式谋生,他卖掉了...
有哪些好听的佛歌 有哪些好听的佛歌心经-----陈奕迅 在香港很红很红南无阿弥陀佛
佛法让人生更美好的经典名句 佛法让人生更美好的经典名句我觉得只有深刻领会“我佛慈悲”的大意就能够普度众生。因为不管一个人以前做了...
发生在邯郸的成语有那些? 发生在邯郸的成语有那些?邯郸学步,负荆请罪,完璧归赵,纸上谈兵,围魏救赵,
蜗牛能活多长时间?急!~ 蜗牛能活多长时间?急!~蜗牛能活多长时间?!是不是不同种类的蜗牛获得时间长短不一样?回答得越具体越好...
不用纸的简易手工 不用纸的简易手工所需材料:易拉罐具体步骤:1、准备一个空易拉罐2、把瓶口得盖子磨去3、找把尺子和刀,...
冒险岛200级的女神雕像在哪? 冒险岛200级的女神雕像在哪?是不是天空的那个啊?是不是在天空里面冒险岛游戏在哪玩
三月见你不见桃花什么意思 三月见你不见桃花什么意思三月见你不见桃花意思是你比桃花更美丽毕仿宽。根据查询相关公开信息显示,三月桃...