【问题标题】:Is there way to watch one ZNode in two process in zookeeper?有没有办法在zookeeper的两个进程中观察一个ZNode?
【发布时间】:2020-12-16 14:19:42
【问题描述】:

我有/math 是根节点(在这两个进程中都设置了Watcher)。我在进程A中创建子节点math/exam01,并在进程B中创建子节点math/exam02(在创建子math/exam01之后)。我希望事件线程将由进程 A 中的 Watcher 触发。但是什么也没有发生,能解释一下这是怎么回事吗?

【问题讨论】:

    标签: spring-boot apache-zookeeper


    【解决方案1】:

    我会尽量关注你的问题:

    在进程 A 中,您在现有 znode /math 上设置了一个监视。此 watch 用于观察与 /math 的子 znode 相关的事件,因此您应该使用以下命令设置它们:

    [PROCESS A]: ls -w /math

    然后,您使用来自进程 A 的客户端为 /math/exam01 路径创建一个子节点,使用以下命令:

    [PROCESS A]: create /math/exam01

    您刚刚创建了/math 的子节点,因此您触发了事件Watch。

    然后您使用进程 B 中的客户端在 /math/exam02 处创建 /math 的新子节点。此操作不会触发进程 A 中的任何 Watch 事件,因为触发器是一次性。如果您需要发送事件,在进程A中第一个事件触发后,您应该重新设置/math的手表。

    更多关于 ZooKeeper 手表的信息here

    【讨论】:

      猜你喜欢
      • 2018-06-04
      • 2017-02-23
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 2019-10-26
      • 2019-10-01
      相关资源
      最近更新 更多