zookeeperclient设置监听
1、目的
zookeeper是一个分布式服务管理框架。zookeeper提供了对client的通知。即在server端的节点有改动或者删除的时候,能够给client进行通知。
2、server端部署
server端部署zookeeper的步骤省略。详细的能够參看我前面的文章。部署也比較简单。
3、client接收通知代码
import java.io.IOException;
import java.util.List;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.EventType;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
class Wa implements Runnable
{
public void run() {
//连接启动k
try {
ZooKeeper zk = new ZooKeeper("10.218.137.73:2181", 500000,new Watcher() {
// 监控全部被触发的事件
public void process(WatchedEvent event) {
System.out.println("changing...");
}
});
//设置监听器
Watcher wc = new Watcher() {
public void process(WatchedEvent event) {
// TODO Auto-generated method stub
if (event.getType() == EventType.NodeDataChanged) {
System.out.println("change");
}
if (event.getType() == EventType.NodeDeleted){
System.out.println("dele");
}
if(event.getType()== EventType.NodeCreated){
System.out.println("create");
}
}
};
//进行轮询。当中exists方法用来询问状态,而且设置了监听器,假设发生变化,则会回调监听器里的方法。
while(true)
{
zk.exists("/jianghuiwen", wc);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KeeperException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class Main {
public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
// TODO Auto-generated method stub
Thread t = new Thread(new Wa());
t.start();
}
}
直接贴了代码,没有加上各种jar包,假设同学们要执行的话,须要先设置一下相关的jar包。应该就是Log4j和zookeeper的包。
4、測试
利用zookeeper自带的zkCli.sh或者用其它对节点进行改动的client进行改动节点。能够发现我们得到了以下的输出:
zookeeperclient设置监听的更多相关文章
- [转]android:动态创建多个按钮 及 批量设置监听
之前投机取巧,先创建好多个按钮,再根据需要的数量进行部分隐藏,不过还是逃不过呀. 这样根本无法批量地 findId,批量地 设置监听. 所以今天还是认认真真地研究回“动态创建按钮”,终于,通过不断尝试 ...
- NavigationView头部设置监听事件
直接写解决方法吧: 1.将XML里的静态引入删除: <android.support.design.widget.NavigationView android:id="@+id/nav ...
- UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法
基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...
- Android ViewPager设置监听注意事项
首先 implements View.OnClickListener 因为Item比较多用这个方便 设置监听要注意地方,如果在 onCreate 直接 findViewById布局里的ID是会出错的 ...
- UIView中UIButton设置监听
红色框框是一个uibutton _priceValueLabel是他的父视图, 必须要把button的父视图设置userInteractionEnabled = YES, button的 监听才会生效 ...
- Android商城开发系列(十四)—— 设置监听RecyclerView的位置
在前面的博客中有讲到过点击一个图片按钮控制RecyclerView的滚动到顶部位置的效果,但是那个图片按钮一直处在一个显示的状态,今天我们来改造一下那个地方,我们要实现的效果是:一开始打开的时候看不到 ...
- CentOS 6.2 X64上64位Oracle11gR2 静默安装,静默设置监听,静默建库经验
1 安装前环境: 操作系统:CetnOS6.2x64 最小化安装,已配置好网络IP:172.16.2.182,物理内存8GB,硬盘100GB. 已下载: Linux.x64_11gR2_datab ...
- 基于Java+Selenium的WebUI自动化测试框架(四)-----设置监听类
基于上一篇的内容,这里我们开始写监听类Listener.我这里写监听类的思路是,继承TestListenerAdapter这个类,然后对其中的方法进行重写.网上也有很多资料,建议先学习一下,然后写出来 ...
- 为不具有change事件的html标签设置监听事件
change事件会在文本内容或选项被更改时触发. 该事件仅适用于<input type="text">和<textarea>以及<select> ...
随机推荐
- 苹果平台上的媒体流播放技术HLS
近日在和朋友聊起媒体流的服务器端实时转码技术的时候,发现苹果的各种终端上的视频播放并未使用常见的基于UDP的RTSP/RTP,而强制使用了Http Live Stream技术,这里稍稍总结了如下. 苹 ...
- [LUOGU] P2704 炮兵阵地
题目描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队. 一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示), 也可能是平原(用"P&q ...
- phpstorm使用Database关联数据库
1.如图选择mysql 配置数据库连接及shh 点击Test Connection,如果成功,即可点击ok连接mysql数据库 2.如图选择所有的表 3.更新数据
- Go:sync.Once 实现单例模式
代码: package main import ( "fmt" "sync" ) type Singleton struct{} var singleton * ...
- C++:别名 / 引用 的简单实用
文章来源:http://www.cnblogs.com/hello-tl/p/7910048.html /* C++别名操作 在更改别名的时候同时变量也会跟着改变 */ #include " ...
- 【转】C# windows服务的创建与调试
Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...
- Jedis 工具类
package com.pig4cloud.pigx.admin.utils; import redis.clients.jedis.*; import java.util.ArrayList; im ...
- Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
概述 备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程.而对于一些网站.系统来说,数据库就是一切,所以做好 ...
- idea没有tomcatserver问题解决
https://www.cnblogs.com/a8457013/p/7795987.html 在配置tomcate时有时候按照网上说的找不到tomcat Server,不知不觉花了很长时间这时我们在 ...
- Python 和 Flask实现RESTful services
使用Flask建立web services超级简单. 当然,也有很多Flask extensions可以帮助建立RESTful services,但是这个例实在太简单了,不需要使用任何扩展. 这个we ...