状态变化的使用场景: 从节点需要知道主要主节点挂掉,从节点需要知道任务分配给了自己,Zookeeper的客户端定时轮询Zookeeper集群状态。避免轮询的方式是,使用监听点,通过监听点,客户端可以对指定的znode节点注册一个通知请求,在发生变化时就会收到一个通知。
一、单次触发器(监视点 ): 只会触发一次事件
1、监视点可以跨越不同服务端的连接而保持,当一个客户端与zookeeper服务端的连接断开后连接到集群中的另一个服务端,客户端会发送未触发的监视点列表。在注册监视点时,服务端将要检查以监视的znode节点在之前监视点再之后是否变化,如果znode节点已经发生变化,一个监视点的事件会被发送给客户端,否则再新的服务端上注册监视点。
2、单次触发是否会丢失事件 :不会带来影响,因为任何在接受通知与注册新监视点之间的变化情况,可以通过zookeeper的状态信息来获得。
二、如何设置监视点 :监视点有两种类型,数据监视点和子节点监视点。
1、创建、删除或设置一个znode节点的数据都会触发数据监视点,exists 和 getData 这两个操作可以设置数据监视点。
2、只有getChildren 操作可以设置子节点和监视点。
对于zookeeper节点的事件的通知,可以使用默认的监视点,也可以单独实现。
3、监视点存在一个问题,一旦设置监视点就无法移除。
三、普遍模型
1、通用代码的模式
(1) 进行调用异步
zk.exists("/myZnode",myWatcher,existsCallback,null);
(2) watcher 实现
Watcher myWatcher = new Watcher(){
public void process(WatccherEvent e){}
}
(3) 回调函数
StatCallback existCallback = new StatCallback(){
public void processResult(int rc,String path,Object ctx,Stat stat){}
}
四、主-从模式的例子
五、multiop 调用方式 : 可以原子性地执行多个Zookeeper的操作
六、通过监视点替代显式缓存管理 : 监视点可以让客户端在本地缓存一个版本的数据,并在数据发生变化时接受到通知来进行更新。
七、zookeeper (集群中所有服务器)顺序的保障
写操作的顺序 : 对集群中一台服务器对的状态修改顺序,其他服务器的状态也会按照同样的顺利修改。
读操作的顺序 : 客户端会观察到相同的更新顺序。
通知顺利
注意: 避免在一个节点设置大量的监视点,因为设置大量监视点,这个节点会产生尖峰通知。
相关推荐
ZooKeeper 未授权访问漏洞处理方法和重设setAcl,需要设置超级管理密码后,方可修改
java zookeeper kafka 日志处理,存储mysql数据库
1、前言前面我们学习的了Zookeeper的集群搭建和管理,也学习和探讨了它的选举原理,我们这一章节来学习zookeeper集群的升级和迁移在学习集群的升级和迁
apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper...
Zookeeper客户端命令
kafka(端口9091-9093)-zookeeper(端口2181-2183)集群配置
zookeeper 3.6.3 源码
#Zookeeper的日志可以用LogFormatter查看 ##命令方式如下 java -classpath .:slf4j-api-1.7.2.jar:zookeeper-3.4.6.jar org.apache.zookeeper.server.LogFormatter /var/lib/zookeeper/version-2/log.1 ##window...
Zookeeper单节点注册中心
zookeeper可视化工具
zookeeper linux 搭建流程,zookeeper linux 搭建流程zookeeper linux 搭建流程zookeeper linux 搭建流程。
【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】...
第4章解释如何跟踪和处理ZooKeeper中的状态变更情况。第5章介绍如何在系统或网络故障时恢复应用。第6章介绍需要注意来避免故障的一些繁杂却很重要的场景。第7章介绍C语言版的API接口,也可以作为非Java语言实现的...
1.0 zookeeper 是什么? 1.1 zookeeper 提供了什么? 1.2 zookeeper 文件系统 ...2.4 zk 集群下 server 工作状态 2.5 zk 是如何选举 Leader 的? 2.6 zk 同步流程 2.7 分布式通知和协调 2.8 zk 的 session 机制
zookeeper windows
dubbo2.6.0 + Zookeeper3.4.9 + Zookeeper3.8.0 + Zookeeper3.7.1
zookeeper教程zookeeper教程zookeeper教程zookeeper教程zookeeper教程
注册中心 zookeeper-3.4.6
ZooKeeper 未授权访问【原理扫描】,zookeeper安全漏洞修复方法和操作步骤
Zookeeper