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

  • 相关阅读:
    Solution: Win 10 和 Ubuntu 16.04 LTS双系统, Win 10 不能从grub启动
    在Ubuntu上如何往fcitx里添加输入法
    LaTeX 笔记---Q&A
    Hong Kong Regional Online Preliminary 2016 C. Classrooms
    Codeforces 711E ZS and The Birthday Paradox
    poj 2342 anniversary party
    poj 1088 滑雪
    poj 2479 maximum sum
    poj 2481 cows
    poj 2352 stars
  • 原文地址:https://www.cnblogs.com/zcjcsl/p/7807062.html
Copyright © 2011-2022 走看看