zoukankan      html  css  js  c++  java
  • ZooKeeper入门(四) Zookeeper监视(Watches)

    1 简介

    Zookeeper 所有的读操作——getData(), getChildren(), 和 exists() 都 可以设置监视(watch),并且这些watch都由写操作来触发:create、delete和setData。监视事件可以理解为一次性的触发器

    2 特性

     官方定义如下: a watch event is one-time trigger, sent to the client that set the watch, which occurs when the data for which the watch was set changes。

    一次性触发:One-time trigger

    当设置监视的数据发生改变时,该监视事件会被发送到客户端,例如,如果客户端调用了 getData("/znode1", true) 并且稍后 /znode1 节点上的数据发生了改变或者被删除了,客户端将会获取到 /znode1 发生变化的监视事件,而如果 /znode1 再一次发生了变化,除非客户端再次对 /znode1 设置监视,否则客户端不会收到事件通知。

    发送至客户端:Sent to the client

    Zookeeper 客户端和服务端是通过 socket 进行通信的,由于网络存在故障,所以监视事件很有可能不会成功地到达客户端

    被设置 watch 的数据:The data for which the watch was set

    这意味着 znode 节点本身具有不同的改变方式

    3 分类

    ZooKeeper所管理的watch可以分为两类: 

    数据watch(data watches)

    getData和exists负责设置数据watch; 

    孩子watch(child watches)

    getChildren负责设置孩子watch;

    watch设置操作及相应的触发器如图下图所示:

  • 相关阅读:
    字符编码解码
    综合练习[购物车]
    for 循环实例
    数据类型
    字符串格式化输出
    集成开发环境
    while循环实例
    赋值运算符、逻辑运算符、表达式
    if,else语句猜最大值
    计算今天和今天的上一月的日期
  • 原文地址:https://www.cnblogs.com/zcjcsl/p/7807062.html
Copyright © 2011-2022 走看看