zookeeper之通知状态类型

1.概述

1.zookeeper提供了分布式数据发布和订阅功能,是一个典型的的发布/订阅模型系统;
2.zookeeper定义了一种一对多的订阅关系,能让多个订阅者同时监听某一个主题对象;
3.当被监听的主题对象自身状态变化时,会通知所有订阅者,使他们能够做出相应的处理;
4.zookeeper中,引入Watcher机制来实现这种分布式通知功能;
5.zookeeper允许客户端想服务端注册一个Watcher监听,当服务端的一些事件触发了这个
  Watcher,那么久会想指定客户端发送一个事件通知来实现分布式的通知功能;
6.触发的事件种类有:节点创建 节点删除 节点改变 子节点改变等;  

Watcher 的三个过程

1.客户端向服务端注册Watcher
2.服务端事件发生触发Watcher;
3.客户端回调Watch得到触发事件情况(客户端一直监听)

2.Watch机制特点

2.1.一次性触发

1.事件发生触发监听,一个watcher event 就会被发送到设置监听的客户端,这种效果是一次性的;
2.后续再次发生同样的事件不会再次触发;

2.2.事件封装

1.zookeeper使用WatcherEvent对象来封装服务端事件并传递;
2.WatcherEvent包含了每一个时间的三个基本操作:
  通知状态(keeperState)
  事件类型(EventType)
  节点路径(path)

2.3.event异步发送

watcher的通知事件从服务器端发送到客户端是异步的;

2.4.先注册再触发

1.zookeeper 中的watch机制,必须是客户端先去服务端注册监听,这样事件发送才会触发监听,通知给客户端;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u014636209/article/details/85475190
今日推荐