我有動物園管理員2個問題:問題上的動物園管理員:屏障實施和序列節點
巴里實施
https://zookeeper.apache.org/doc/r3.1.2/recipes.html#sc_recipes_eventHandles
爲什麼第4步是必要的嗎?如果客戶端等待屏障節點的刪除事件,當事件被觸發時,爲什麼客戶端仍然需要重新發布exists()調用?
序列節點
是否飼養員保證追加到序列節點的名字的號是連續,並從0開始?即使混合了Ephemeral屬性?
例如,如果/測試是一個新創建的節點,序列的子節點必須是這樣的:/測試/ xxx_00000000000,/測試/ xxx_00000000001,/測試/ xxx_00000000002 ...從/test/xxx_00000000000和/test/xxx_00000000001絕不會錯過。
如果所有客戶端都等待屏障節點的刪除事件,並且該節點已被刪除,則應通知所有客戶端,並且任何對exists()的調用都應該返回false。由於該節點已被刪除,因此任何客戶端如何爲exists()調用獲取true? –
我假設第一個獲得通知的客戶端將進入併爲其他人看到屏障。 – C4stor
我仍然不明白爲什麼第一個客戶應該看到屏障?根據我的理解,如果障礙消失,即節點已被刪除,則所有客戶端都應繼續處理。所以沒有必要重新考慮這個障礙。如果我錯了,請糾正我。 –