• 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设置操作及相应的触发器如图下图所示:

  • 相关阅读:
    springcloud(Feign)三
    Hibernate @TableGenrator表管理主键生成策略
    Hibernate @Entity注解配置说明
    Hibernate @SequenceGenerator的注解介绍
    java StrutsTypeConverter的使用
    structs2 DefaultTypeConverter类型转换说明
    Struts2(XWork)拦截器的功能介绍:
    structs2 防止表单的重复提交token
    Structs ActionProxy深度阅读
    Structs2 request_locale国际化介绍
  • 原文地址:https://www.cnblogs.com/zcjcsl/p/7807062.html
Copyright © 2020-2023  润新知