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

  • 相关阅读:
    hover经过放大效果
    TDD
    VisualStudio UnitTest FrameWork
    Rhino Mock
    Unit Test
    GPS坐标转化为百度坐标
    只上传APK而不进行反编译,在服务器集成第三方SDK。是如何实现的
    如何实现滑动scrollview上下隐藏
    Windroy、Windroye、Bluestacks运行Android实现原理
    问个file的问题
  • 原文地址:https://www.cnblogs.com/zcjcsl/p/7807062.html
Copyright © 2011-2022 走看看