zkclient通过BlockingQueue实现多线程的事件驱动,当zkClient对象构造时,调用connect方法启动eventthread线程,eventthread线程的run实现如下:
@Override
public void run() {
LOG.info("Starting ZkClient event thread.");
try {
while (!isInterrupted()) {
ZkEvent zkEvent = _events.take();
int eventId = _eventId.incrementAndGet();
LOG.debug("Delivering event #" + eventId + " " + zkEvent);
try {
zkEvent.run();
} catch (InterruptedException e) {
interrupt();
} catch (ZkInterruptedException e) {
interrupt();
} catch (Throwable e) {
LOG.error("Error handling event " + zkEvent, e);
}
LOG.debug("Delivering event #" + eventId + " done");
}
} catch (InterruptedException e) {
LOG.info("Terminate ZkClient event thread.");
}
}
由zkClient对象调用thread的send方法向blockingqueue中写入一个ZkEvent,zkEvent本身是一个抽象类,zkClient通过实现其中的run方法,实现不同的业务功能,zkClient对象内部保存一个Map<String, Set<IZkChildListener>> _childListener作为观察者模式的listener。ZkEvent内部实现主要调用listener实现不同的方法。
分享到:
相关推荐
ZkClient是Github上一个开源的ZooKeeper客户端。ZkClient在ZooKeeper原生 API接口之上进行了包装,是一个更加易用的ZooKeeper客户端。同时,ZkClient在内部实现了诸如Session超时重连、Watcher反复注册等功能。
zkclient
zkclient 项目项目介绍:zkclient 是对zookeeper java客户端进行的封装,主要实现了连接、断线重连,watch事件改为listen监听事件,分布式锁等注意: 使用时需要自行编译安装到maven或打成jar使用使用方式:...
zkclient-2.1.1.jar 包
赠送jar包:zkclient-0.10.jar; 赠送原API文档:zkclient-0.10-javadoc.jar; 赠送源代码:zkclient-0.10-sources.jar; 赠送Maven依赖信息文件:zkclient-0.10.pom; 包含翻译后的API文档:zkclient-0.10-javadoc-...
zookeeper客户端zkClient操作示例
zkclient-0.10 zkclient-0.10.jar
zkclient-0.3.jar for windows
zkclient1.0的jar包以及源码,使用ZooKeeper必用,淘宝官方提供
赠送jar包:zkclient-0.8.jar; 赠送原API文档:zkclient-0.8-javadoc.jar; 赠送源代码:zkclient-0.8-sources.jar; 赠送Maven依赖信息文件:zkclient-0.8.pom; 包含翻译后的API文档:zkclient-0.8-javadoc-API...
zkclient-2.1.1.jar
赠送jar包:zkclient-0.10.jar; 赠送原API文档:zkclient-0.10-javadoc.jar; 赠送源代码:zkclient-0.10-sources.jar; 赠送Maven依赖信息文件:zkclient-0.10.pom; 包含翻译后的API文档:zkclient-0.10-javadoc-...
赠送jar包:zkclient-0.1.jar; 赠送原API文档:zkclient-0.1-javadoc.jar; 赠送源代码:zkclient-0.1-sources.jar; 包含翻译后的API文档:zkclient-0.1-javadoc-API文档-中文(简体)版.zip 对应Maven信息:...
zkclient包含了0.3版本、2.2.1版本、0.9版本、0.8版本、1.0版本、2.0版本
zkclient-0.8 2016新的jar包
非常方便订阅各种事件并自动重新绑定事件(会话建立、节点修改、节点删除、子节点变更等) session过期自动重连、机制 快速入门 下面部分将引导使用者快速入门。 快速指南: 简单快速入门使用,满足大部分需求 ...
zkclient简单介绍,类图uml 以及简单的。ZkClient如何解决使用ZooKeeper客户端遇到的问题的呢?
zkclient-0.2.jar
从git上下载源码打包后的zkclient.jar
zkclient-0.5.jar