zookeeper之watch事件延遲
1.watch事件延遲概念說明:watch事件非同步傳送至觀察者。節點的值被修改後,watch事件會發往觀察者,觀察者不會得知資料變化,直到接收到watch事件。如果在watch事件傳送給觀察者的過程中且還未到達觀察者時,該節點的值又被修改了,那麼watch事件到達觀察者時,節點值已經是第二次被修改的值了。
2.為了降低watch事件延遲帶來的資訊錯誤,有如下方法可以參考:減少修改節點值的使用者,一個節點多個觀察者是沒有問題的,儘量做到一個節點只有一個修改者。可能在實際應用中恰好我們需要這樣的機制,多個修改者通過修改一個節點值來通知一個觀察者來,觀察者針對節點的值做出響應。如下圖所示:
由於watch延遲,上圖結構容易引起誤差,可改為下圖所示:
這樣同樣實現了上面所說的需求,同時避免watch延遲帶來的誤差。由於ZooKeeper的靈活性,結合程式語言,可以構造更穩定的分散式結構。
3.總結
以上分析是自己一點點的小心得,希望能得到指正和意見,現在正在編寫這方面的程式,有什麼發現會及時和大家分享的。
相關文章
- Zookeeper watcher 事件機制原理剖析事件
- WebGL之延遲著色Web
- SQL之延遲約束SQL
- 【Zookeeper】原始碼分析之Watcher機制(三)之ZooKeeper原始碼
- 【Zookeeper】原始碼分析之Watcher機制(二)之WatchManager原始碼
- hover事件延遲處理程式碼例項詳解事件
- 【MySQL】 效能優化之 延遲關聯MySql優化
- RabbitMQ延遲訊息的延遲極限是多少?MQ
- 【Zookeeper】原始碼分析之Watcher機制(一)原始碼
- 延遲釋出
- 移動端點選事件延遲的誕生消亡史事件
- 第7 章、解釋與延遲有關的等待事件事件
- MySQL之 從複製延遲問題排查MySql
- 【MySQL】 效能最佳化之 延遲關聯MySql
- Zookeeper--Watch機制
- Zookeeper watch機制原理
- ZooKeeper Watcher機制
- Laravel 延遲佇列Laravel佇列
- Mybatis延遲查詢MyBatis
- redis 延遲佇列Redis佇列
- 轉化率模型之轉化資料延遲模型
- java多執行緒之延遲初始化Java執行緒
- 實現簡單延遲佇列和分散式延遲佇列佇列分散式
- 基於rabbitmq延遲外掛實現分散式延遲任務MQ分散式
- 啟動優化之動態庫延遲載入優化
- 延遲阻塞佇列 DelayQueue佇列
- script的延遲執行
- oracle的延遲約束Oracle
- 從庫延遲案例分析
- 美國伺服器延遲高怎麼辦,如何解決延遲問題伺服器
- 搞懂ZooKeeper的Watcher之原始碼分析及特性總結原始碼
- mysql同步問題之Slave延遲很大最佳化方法MySql
- Dyno-queues 分散式延遲佇列 之 輔助功能分散式佇列
- RabbitMQ實戰《延遲佇列》MQ佇列
- mysql主從延遲複製MySql
- RabbitMQ實現延遲佇列MQ佇列
- RabbitMQ 實現延遲佇列MQ佇列
- Mybatis延遲載入、快取MyBatis快取