2014-03-24 64 views
0

我們知道如何創建使用Apache館長分佈式共享鎖:阿帕奇館長鎖路徑

InterProcessMutex lock = new InterProcessMutex(client,"/my/lock"); 

對於上面的代碼,我有兩個問題:

1:第二個參數是路徑鎖(znode),這個鎖znode也是自動創建的這段代碼,還是我們需要手動創建它呢?

2:如果它是由「InterProcessMutex」創建的,那麼如果這個鎖znode已經被其他實例創建了呢?它會拋出任何「znode exsting」異常嗎?如果它不拋出任何異常,發生了什麼事,創建一個重複的znode?

回答

3

對於1 - 是的,Curator會爲您創建路徑(和父母,如果需要)。

對於2 - 如果其他實例分配InterProcessMutex與該路徑沒有問題。它都是在內部處理的。館長根據需要創建路徑。將路徑看作「鎖定標識」。

Dislaimer:我所以當館長並「釋放」,該路徑被刪除館長

+0

的主要作者或不 – user3019299

+0

不,它不會被刪除。然而,策展人有一個單獨的配方(收割機),可以用來清理這樣的舊路徑。 – Randgalt