2017-10-05 73 views
1

之前假設我是一個zookeeper客戶端,它在持有鎖(InterProcessMutex)的同時創建/更新/刪除一些zookeeper(持久)節點。是否保證另一個客戶端在我發佈之後獲得相同的鎖定會看到我的修改?Apache Curator鎖定發生在

我假設答案是肯定的,因爲鎖定釋放發生在每個zookeeper服務器上的節點更新之後,但任何人都可以證實這個假設?

回答

2

讓我們通過這個和看(使用客戶A和B):

  1. A和B爭用鎖和獲得它
  2. B現在對鎖的優秀手錶
  3. A修改一些ZNodes
  4. A釋放鎖(這意味着刪除其鎖定Z序節點)
  5. B的鎖守望者(由策展人管理)得到通知

在步驟5中,B保證查看在A的鎖節點被刪除之前發生的所有修改,因爲ZooKeeper保證消息排序。所以,你的問題的答案是肯定的。