Apache Curator锁定并发生在之前

时间:2017-10-05 13:15:16

标签: apache-zookeeper apache-curator

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

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

1 个答案:

答案 0 :(得分:2)

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

  1. A和B争夺锁定而A获得它
  2. B现在有一个出色的锁定手表
  3. A修改某些ZNode
  4. A释放锁(这意味着删除他的锁ZNode)
  5. B的锁定观察者(由策展人管理)得到通知
  6. 在步骤5,B保证看到在A的锁定节点被删除之前发生的所有修改,因为ZooKeeper保证消息排序。所以,你的问题的答案是肯定的。