Apache Curator 锁定并发生在之前

Apache Curator lock and happens before

假设我是一个动物园管理员客户端,create/update/delete 一些动物园管理员(持久)节点持有锁(InterProcessMutex)。是否保证在我释放后获得相同锁的另一个客户端将看到我的修改?

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

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

  1. A和B争夺锁,A获得锁
  2. B现在锁上了一块优秀的手表
  3. A修改了一些ZNode
  4. A释放锁(也就是删除他的锁ZNode)
  5. B 的锁观察器(由 Curator 管理)收到通知

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