`

Zookeeper系列之观察者模式-Watcher

 
阅读更多
Watcher是Zookeeper用来实现distribute lock, distribute configure, distribute queue等应用的主要手段。要监控data_tree上的任何节点的变化(节点本身的增加,删除,数据修改,以及孩子的变化)都可以在获取该数据时注册一个Watcher,这有很像Listener模式。一旦该节点数据变化,Follower会发送一个notification response,client收到notification响应,则会查找对应的Watcher并回调他们。 有以下接口可以注册Watcher:
1.    Stat exists(final String path, Watcher watcher)
2.    Stat exists(String path, boolean watch)
3.    void exists(String path, boolean watch, StatCallback cb, Object ctx)
4.    void exists(final String path, Watcher watcher, StatCallback cb, Object ctx)
5.    byte[] getData(final String path, Watcher watcher, Stat stat)
6.    byte[] getData(String path, boolean watch, Stat stat)
7.    void getData(final String path, Watcher watcher, DataCallback cb, Object ctx)
8.    void getData(String path, boolean watch, DataCallback cb, Object ctx)
9.    List<string> getChildren(final String path, Watcher watcher)
10.    List<string> getChildren(String path, boolean watch)
11.    void getChildren(final String path, Watcher watcher,ChildrenCallback cb, Object ctx)

如果参数需要传递watcher,则可以自己定义Watcher进行回调处理。如果是Boolean型变量,当为true时,则使用系统默认的Watcher,系统默认的Watcher是在zookeeper的构造函数中传递的Watcher。如果Watcher为空或者Boolean变量时为false,则表明不注册Watcher。如果获取数据后不需要关注该数据是否变化,就不需要注册Watcher。上面没有返回值的都是异步调用模式。需要注意的是,一旦Watcher被调用后,将会从map中删除,如果还需要关注数据的变化,需要再次注册。
Watcher的使用与注意事项
1.Watcher需要每次都要注册。
2.Watcher回调之后就销毁如果打算再次回调就需要再次注册
分享到:
评论

相关推荐

    zookeeper-3.8.0安装包下载

    Zookeeper 的核心概念包括节点(Znode)、会话(Session)和观察者(Watcher)。Znode 是 Zookeeper 数据存储的基本单位,类似于文件系统中的节点,分为临时节点和永久节点两种。会话是客户端与 Zookeeper 服务器...

    最新版linux apache-zookeeper-3.7.0-bin.tar.gz

    - **Watcher**:观察者机制,允许客户端注册监听Znode的变化,当Znode的状态改变时,Zookeeper会通知已注册的客户端。 - **Session**:客户端与Zookeeper服务器之间的连接,提供了会话超时和临时节点的概念。 2. ...

    apache-zookeeper-3.8.4-bin.tar

    3. **观察者模式(Watcher)**:一种事件通知机制,当Znode的状态发生变化时,注册了该Znode的Watcher的客户端会被触发回调函数。 4. **命令行工具(CLI)**:Zookeeper提供了一套命令行接口,用于进行基本操作,如...

    apache-zookeeper-3.5.8-bin.zip

    3. **观察者模式(Watcher)**:一种事件监听机制,允许客户端注册对特定 ZNode 变化的监听器,一旦发生变化,ZooKeeper 会通知客户端。 4. **一致性模型**:ZooKeeper 提供的强一致性模型,保证了所有客户端看到的...

    zookeeper-3.4.10.tar.gz.zip

    6. **选举机制**:Zookeeper集群由多个服务器组成,每个服务器都有自己的角色,包括领导者(Leader)、跟随者(Follower)和观察者(Observer)。选举机制确保在服务器故障时,能够快速选举出新的领导者,保持服务的...

    zookeeper-3.4.5

    2. 观察者模式:Zookeeper引入了观察者(Observer)角色,除了传统的领导者(Leader)、跟随者(Follower)之外,观察者不参与投票过程,但可以接收数据更新,降低了系统扩展时的网络压力。 3. 一致性保证:...

    【面试资料】-(机构内训资料)zookeeper面试专题.zip

    每个ZNode都可以存储数据,有唯一的路径标识,并支持 watches(观察者)。 2. **Zookeeper的数据模型** - 数据模型是层次化的命名空间,类似于文件系统的目录结构,每个节点称为ZNode。 - ZNode分为临时节点和...

    zookeeper系列1:入门

    - **Watcher**: Zookeeper提供了一种观察机制,即Watcher。客户端可以注册Watcher来监听特定Znode的变化,当Znode的状态发生改变时,Zookeeper会通知相应的Watcher。 **2. Zookeeper的架构** Zookeeper采用Paxos...

    zookeeper-3.5.3-beta配置版.zip

    - Watcher:观察者机制,允许客户端注册监听ZNode的变更,当ZNode发生变化时,ZooKeeper会向注册的客户端发送事件通知。 在分布式应用中,ZooKeeper可以作为服务发现的工具,帮助客户端定位服务的位置;也可以作为...

    zookeeper编程api

    `connectString`是Zookeeper服务器的地址,`sessionTimeout`是会话超时时间,`watcher`是可选的观察者,用于监听Zookeeper事件。 2. **节点操作**: - **创建节点**:`create(path, data, acl, createMode)`用于...

    分布式服务框架 Zookeeper -- 管理分布式环境中的数据

    Zookeeper的核心概念包括节点(ZNode)、会话(Session)和观察者模式(Watcher)。ZNode是Zookeeper中的基本数据单元,类似于文件系统中的文件或目录,可以存储数据并拥有权限控制。每个ZNode都有一个唯一的路径...

    zookeeper-3.5.3

    - 它基于观察者模式设计,服务器和客户端之间通过Zookeeper协议进行通信。 2. **Zookeeper的数据模型**: - Zookeeper的数据模型是一个层次化的命名空间,类似于文件系统,由节点(Znode)组成。 - Znode分为...

    zookeeper-API开发lib

    3. **Watchers(观察者)**: - Watcher是ZooKeeper中的事件监听器,可以注册到ZNode上,当ZNode的状态发生变化时,Watcher将收到通知。Watcher是单次触发的,即触发一次后需要重新注册。 - Watcher事件分为四种:...

    zookeeper-3.4.14.zip

    3. **Watcher**:Watcher是Zookeeper的一种观察机制,允许客户端注册监听指定Znode的变化,当Znode状态发生变化时,Zookeeper会向客户端发送一个事件通知。 二、Zookeeper的主要功能 1. **配置管理**:Zookeeper...

    zookeeper-3.4.6 下载

    3. **观察者模式(Watcher)**: ZooKeeper提供了一种事件监听机制,即Watcher。当节点状态发生变化时,已注册的Watcher会接收到通知,可以实现分布式环境中的事件传播和响应。 4. **一致性保证**: ZooKeeper保证...

    大数据之Zookeeper视频

    3. **Watcher**:Zookeeper提供了一种称为Watcher的机制,它是一种观察者模式的实现,用于监听Znode上的事件变化。当触发了Watcher后,Zookeeper会向客户端发送通知。 4. **Session**:客户端与Zookeeper服务器之间...

    zookeeper-3.5.3-beta.tar.gz压缩包

    它的主要概念包括节点(ZNode)、会话(Session)、观察者(Watcher)等,这些构成了Zookeeper的核心机制。 总的来说,Zookeeper是一个强大而灵活的工具,它简化了分布式系统的许多复杂问题,如一致性、故障恢复和...

    zookeeper-3.4.9的源码

    - **Watcher**:观察者机制,用于监听ZNode的变更事件,实现异步通知。 5. **一致性与状态机**: - **Zookeeper使用Paxos算法的简化版**:Zookeeper采用FastPaxos策略,简化了Paxos算法,提高了选举效率。 - **...

    zookeeper代码例子

    3. **ZooKeeper观察者模式**: - 观察者(Observer)是ZooKeeper的一种扩展机制,用于提高系统的可扩展性。它不参与数据的存储,只负责转发请求给领导者,减轻了领导者的工作负担。 4. **ZooKeeper数据模型**: -...

    zookeeper-3.4.9

    - **观察者模式(Watcher)**:Zookeeper允许客户端注册Watcher,当特定节点发生变化时,Zookeeper会触发Watcher事件,实现分布式环境中的异步通知机制。 2. **架构设计**: - **主从结构**:Zookeeper集群由多个...

Global site tag (gtag.js) - Google Analytics