搞懂ZooKeeper的Watcher之源码分析及特性总结

  本章讲ZooKeeper重要的机制,Watcher特性ZooKeeper允许客户端向服务端注册Watcher监听,当服务端一些指定事件触发了这个Watcher,那么就会向指定客户端发送一个事件通知客户端执行回调逻辑

 

一.Watcher机制

  ZooKeeper允许客户端向服务端注册感兴趣的Watcher监听,当服务端触发了这个Watcher,那么就会向客户端发送一个时间来实现分布式的通知功能。真正的Watcher回调与业务逻辑执行都在客户端

  那么需要注意一下,给客户端的通知里只会告诉你通知状态(KeeperState),事件类型(EventType)和路径(Path)。不会告诉你原始数据和更新过后的数据!

  Watcher机制包括三部分:注册、存储、通知

注册:注册Watcher

存储:讲Watcher对象存在客户端的WatcherManager中

通知:服务端触发Watcher事件,通知客户端,客户端从WatcherManager中取出对应的Watcher对象执行回调 

搞懂ZooKeeper的Watcher之源码分析及特性总结

  那么接下来,我们就分这3步来分析

注册

  我们可以通过以下方式向服务端注册Watcher,主要是构造参数、getData、getChildren和exists方法:

public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher) public byte[] getData(String path, Watcher watcher, Stat stat) public List<String> getChildren(String path, Watcher watcher) public Stat exists(String path, Watcher watcher)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzxjz.html