2017-06-08 47 views
0

動物園管理員的手錶是一次性觸發器;如果我收到一個觀看事件,並且想要知道未來的變化,我必須設置另一塊手錶。Zookeeper爲什麼使手錶一次觸發?

有一些缺點:

1)這使我的代碼複雜

2)是獲得該事件併發送一個新的請求得到一塊手錶之間的等待時間,一些變化可能會錯過!

爲什麼Zookeeper會使手錶一次觸發?

回答

1

你可以看到[ZOOKEEPER-153] [1] https://issues.apache.org/jira/browse/ZOOKEEPER-153

在現實中這樣的永久手錶不提供任何額外的好處,在一個時間的手錶。具體而言,監視事件中不包含數據,因此客戶端仍需要執行查詢操作以獲取與更改相對應的數據;即使如此,在事件被接收之後並且在客戶端發送查詢操作之前,znode可以再次改變。即使對znode的更改數量可以使用一次性手錶並檢查znode的統計結構中的mzxid來找到。客戶端仍然會錯過客戶端切換ZooKeeper服務器時發生的事件。

+0

Zookeeper計劃在將來添加永久手錶嗎? – lihongxu

+0

自2014年起,Zookeeper用戶開始提出這個問題。他們肯定回答了這個問題,他們不改變它,除非提供超過一次手錶的額外利益。 – daisy

+0

這正是我想要的,謝謝! – lihongxu

相關問題