【问题标题】:Apache Curator lock and happens beforeApache Curator 锁定并发生在之前
【发布时间】:2017-10-06 16:52:02
【问题描述】:

假设我是一个 Zookeeper 客户端,在持有锁 (InterProcessMutex) 的同时创建/更新/删除一些 zookeeper(持久)节点。是否保证在我释放后获得相同锁的另一个客户端会看到我的修改?

我假设答案是肯定的,因为每个 zookeeper 服务器上的节点更新后都会释放锁,但是任何人都可以确认这个假设吗?

【问题讨论】:

    标签: apache-zookeeper apache-curator


    【解决方案1】:

    让我们看一下(使用客户端 A 和 B):

    1. A 和 B 争夺锁,A 获得了它
    2. B 现在的锁上有一块出色的手表
    3. A 修改了一些 ZNodes
    4. A释放锁(意味着删除他的锁ZNode)
    5. B 的锁观察者(由 Curator 管理)收到通知

    在步骤 5 B 保证看到在 A 的锁节点被删除之前发生的所有修改,因为 ZooKeeper 保证消息排序。所以,你的问题的答案是肯定的。

    【讨论】:

      猜你喜欢
      • 2014-05-02
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多