2014-11-24 30 views
7

Apache Curator鎖配方(或更低級別的ZooKeeper)是否有任何工具可以自動釋放超過某些TTL的鎖?如果沒有,是否有最佳做法來處理這個問題?我發現Curator會在客戶端連接丟失的情況下自動釋放鎖,這很好......並且鎖定獲取的超時也很有幫助。Apache Zookeeper /館長鎖的生存時間

我想知道我需要什麼程度來保護我的系統,做一個重複的工作,尋找鎖已經到了很長時間,並手動釋放它們。我可以通過單獨的流程直接刪除相關的ZNode嗎?

回答

7

館長的鎖使用EPHEMERAL znodes實現。所以,如果鎖定器以某種方式變得不穩定,ZooKeeper應該自動釋放鎖。如果你正在尋找一種方法來撤銷其他進程持有的鎖,Curator的一些鎖配方有一個協作式的撤銷設施。除此之外,從進程下方刪除鎖定似乎會導致巨大的不穩定。我想不出有這麼好的理由。

(注:我是館長的主要作者)

+0

感謝您的答覆!希望你能看到這一點,我已經讚賞你的其他反駁。絕對意識到失去連接的ZK客戶端的自動處理以及協作撤銷。也許我太偏執了,但我使用ZK/Curator作爲分佈式鎖定庫的實現細節。無法控制在執行鎖定時執行的代碼。我想我可以抽象出合作撤銷方面,因此有辦法處理行爲不端的客戶端代碼。謝謝回覆。 – 2014-11-28 18:53:45