您的位置:首页
创建一个zookeeper的会话(实现watcher)
2017-07-17 20:29
253 查看
在先前的章节中,我们利用zkCli去了解了一下主要的zookeeper的操作。在接下来的章节中,我们将会学习一下在应用中是怎样利用zookeeper的api的。接下来我们将利用一个程序展示一下,怎样来创建一个回话和监视。
那么以下我们将開始一个主从模式的结构样例。
创建一个zookeeper的会话
如以下所看到的,每个建立的会话一旦它的连接被破坏,将会转移到其它的zookeeper服务。仅仅要会话保持通畅。那么句柄将会有效。那么zookeeperclient类库将会经历的保持连接。假设句柄关闭了。那么zookeeperclient的类库会告诉zookeeper服务端终止会话。假设zookeeper了解到client已经死掉了,它将会验证会话。假设以后client向再次恢复这个会话,将会通过这个句柄来验证一个会话的有效性。
Zookeeper的构造函数例如以下所看到的
ZooKeeper(
String connectString,
int sessionTimeout,
Watcher watcher)
connectString:包括了zookeeper服务端的主机名和端口号,
sessionTimeOut:会话的超时时间。是以毫秒为单位的
watcher:当我们收到一个会话事件的时候,须要去创建一个对象。
由于watch是一个接口,因此我们须要去实现该接口,从而完毕zookeeper构造函数的初始化。client须要用监视去观察zookeeper的会话状态。当client建立连接或者失去连接的时候,就会创建该事件。该事件也可以利用来监视zookeeper数据的改变。最后假设会话过期后。该事件也可以监听到,终于通过client。
实现一个监视
为了可以通知client,我们须要实现一个监视。
该接口信息例如以下所看到的
public interface Watcher {
void process(WatchedEventevent);
}
实现一个watcher
上面的样例就是一个简单的实现water的master类,可以尝试连接一下。看一下控制台打印的信息
那么以下我们将開始一个主从模式的结构样例。
创建一个zookeeper的会话
如以下所看到的,每个建立的会话一旦它的连接被破坏,将会转移到其它的zookeeper服务。仅仅要会话保持通畅。那么句柄将会有效。那么zookeeperclient类库将会经历的保持连接。假设句柄关闭了。那么zookeeperclient的类库会告诉zookeeper服务端终止会话。假设zookeeper了解到client已经死掉了,它将会验证会话。假设以后client向再次恢复这个会话,将会通过这个句柄来验证一个会话的有效性。
Zookeeper的构造函数例如以下所看到的
ZooKeeper(
String connectString,
int sessionTimeout,
Watcher watcher)
connectString:包括了zookeeper服务端的主机名和端口号,
sessionTimeOut:会话的超时时间。是以毫秒为单位的
watcher:当我们收到一个会话事件的时候,须要去创建一个对象。
由于watch是一个接口,因此我们须要去实现该接口,从而完毕zookeeper构造函数的初始化。client须要用监视去观察zookeeper的会话状态。当client建立连接或者失去连接的时候,就会创建该事件。该事件也可以利用来监视zookeeper数据的改变。最后假设会话过期后。该事件也可以监听到,终于通过client。
实现一个监视
为了可以通知client,我们须要实现一个监视。
该接口信息例如以下所看到的
public interface Watcher {
void process(WatchedEventevent);
}
实现一个watcher
/** * @FileName: master.java * @Package:com.test * @Description: TODO * @author: LUCKY * @date:2016年1月15日 下午7:54:58 * @version V1.0 */ package com.test; import java.io.IOException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooKeeper; /** * @ClassName: master * @Description: 实现一个maste的watcher * @author: LUCKY * @date:2016年1月15日 下午7:54:58 */ public class master implements Watcher { ZooKeeper zk; String hostPort; /** * */ public master(String hostPort) { this.hostPort = hostPort; } void startZk() throws IOException { zk = new ZooKeeper(hostPort, 15000, this); } public void process(WatchedEvent event) { System.out.println(event); } void stopZk() throws Exception { zk.close(); } public static void main(String[] args) throws Exception { master m = new master("100.66.162.90:2180"); m.startZk(); Thread.sleep(60000); m.stopZk(); } }
上面的样例就是一个简单的实现water的master类,可以尝试连接一下。看一下控制台打印的信息
相关文章推荐
- 创建一个zookeeper的会话(实现watcher)
- Zookeeper实例原生API--创建一个基本的Zookeeper会话
- Zookeeper实例原生API--创建一个基本的Zookeeper会话
- 创建一个直角三角形类(regular triangle)RTriangle类,实现下列接口IShape。两条直角边长作为RTriangle类的私有成员,类中包含参数为直角边的构造方法。
- 使用dubbo+zookeeper创建一个小应用
- 用js文件创建一个带参数的view client的快捷方式(类似的bat形式也可模仿实现),并实现自动登录
- c#中在DataGrid里创建一个弹出式窗口------可实现源代码
- 创建一个宏,实现通过excel导出TXT文本功能
- socket实现群聊---为每个客户端创建一个线程
- 一步一步SharePoint 2007之四十二:实现自定义Workflow(1)——在VS中创建一个Workflow
- 创建一个Fraction类(分数)实现分数的加减乘除,比较大小、约分等方法。
- 创建一个Fraction类(分数)实现分数的加减乘除,比较大小、约分等方法.要求:为类添加属性
- 创建一个CPoint类,代表平面直角坐标系中的点,创建构造函数和运算符重载函数, 运算符重载为类重载(非友元重载),可以实现计算两个点之间的距离。可以根据需要 加入自己的成员变量或成员函数
- OC 创建一个Fraction类(分数)实现分数的加减乘除,比较大小、约分等方法。 要求:为类添加属性
- Asp.net中创建程序集以及一个简单的IHttpHandler 实现
- 内容输出Linux文件系统的的实现:创建一个文件的过程
- ZooKeeper之一次会话的创建过程。
- 通过Lua代码创建一个Cube,并实现控制行走
- C#创建一个小型Web Server(Socket实现)
- 监听android home键的实现方式 创建一个广播接受者