开发者社区> 问答> 正文

ZooKeeper的Watcher机制是什么?

ZooKeeper的Watcher机制是什么?

展开
收起
令人无语的八阿哥 2021-10-22 15:46:57 512 0
来自:华章出版社
1 条回答
写回答
取消 提交回答
  • Watcher机制是ZooKeeper实现的一种事件异步反馈机制,就像现实生活中某读者订阅了某个主题,这个主题一旦有任何更新都会第一时间反馈给该读者一样。

    • watcher设置:ZooKeeper可以为所有的读操作设置watcher,这些读操作包括getChildren()、exists()以及getData()。其中通过getChildren()设置的watcher为子节点watcher,这类watcher关注的事件包括子节点创建、删除等。通过exists()和getData()设置的watcher为数据watcher,这类watcher关注的事件包含节点数据发生更新、子节点发生创建删除操作等。

    • watcher触发反馈:ZooKeeper中客户端与服务器端之间的连接是长连接。watcher事件发生之后服务器端会发送一个信息给客户端,客户端会调用预先准备的处理逻辑进行应对。

    • watcher特性:watcher事件是一次性的触发器,当watcher关注的对象状态发生改变时,将会触发此对象上所设置的watcher对应事件。例如:如果一个客户端通过getData("/znode1", true)操作给节点/znode1加上了一个watcher,一旦"/znode1"的数据被改变或删除,客户端就会获得一个关于"znode1"的事件。但是如果/znode1再次改变,那么将不再有watcher事件反馈给客户端,除非客户端重新设置了一个watcher。

    资料来源:《HBase原理与实践》,文章链接:https://developer.aliyun.com/article/724670

    2021-10-22 16:04:02
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
《MSE 微服务网关》 立即下载
微服务引擎 MSE 治理中心重磅发布 立即下载
阿里云微服务引擎 MSE 2.0 线上发布 立即下载