zookeeper之watch事件延遲
1.watch事件延遲概念說明:watch事件非同步傳送至觀察者。節點的值被修改後,watch事件會發往觀察者,觀察者不會得知資料變化,直到接收到watch事件。如果在watch事件傳送給觀察者的過程中且還未到達觀察者時,該節點的值又被修改了,那麼watch事件到達觀察者時,節點值已經是第二次被修改的值了。
2.為了降低watch事件延遲帶來的資訊錯誤,有如下方法可以參考:減少修改節點值的使用者,一個節點多個觀察者是沒有問題的,儘量做到一個節點只有一個修改者。可能在實際應用中恰好我們需要這樣的機制,多個修改者通過修改一個節點值來通知一個觀察者來,觀察者針對節點的值做出響應。如下圖所示:
由於watch延遲,上圖結構容易引起誤差,可改為下圖所示:
這樣同樣實現了上面所說的需求,同時避免watch延遲帶來的誤差。由於ZooKeeper的靈活性,結合程式語言,可以構造更穩定的分散式結構。
3.總結
以上分析是自己一點點的小心得,希望能得到指正和意見,現在正在編寫這方面的程式,有什麼發現會及時和大家分享的。
相關文章
- WebGL之延遲著色Web
- Zookeeper watch機制原理
- Zookeeper--Watch機制
- 移動端點選事件延遲的誕生消亡史事件
- RabbitMQ延遲訊息的延遲極限是多少?MQ
- 延遲繫結
- MySQL之 從複製延遲問題排查MySql
- 轉化率模型之轉化資料延遲模型
- redis 延遲佇列Redis佇列
- Mybatis延遲查詢MyBatis
- Laravel 延遲佇列Laravel佇列
- 疫情延遲 題解
- 實現簡單延遲佇列和分散式延遲佇列佇列分散式
- 基於rabbitmq延遲外掛實現分散式延遲任務MQ分散式
- 啟動優化之動態庫延遲載入優化
- SpringCloud 2020.0.4 系列之 Stream 延遲訊息 的實現SpringGCCloud
- 延遲阻塞佇列 DelayQueue佇列
- 延遲繫結與retdlresolve
- 從庫延遲案例分析
- hyperf redis延遲佇列Redis佇列
- Android Home鍵之後啟動Activity延遲5sAndroid
- mysql同步問題之Slave延遲很大最佳化方法MySql
- Dyno-queues 分散式延遲佇列 之 輔助功能分散式佇列
- 美國伺服器延遲高怎麼辦,如何解決延遲問題伺服器
- mysql主從延遲複製MySql
- 延遲靜態繫結——static
- 前向渲染和延遲渲染
- Flink 鏈路延遲測量
- 主從延遲調優思路
- PostgreSQL中的複製延遲SQL
- 3.6 延遲例項終止
- RabbitMQ實戰《延遲佇列》MQ佇列
- Mybatis延遲載入、快取MyBatis快取
- MySQL 延遲從庫介紹MySql
- [Redis]延遲訊息佇列Redis佇列
- osg使用整理(11):延遲渲染
- RabbitMQ 實現延遲佇列MQ佇列
- laravel 實戰延遲解鎖Laravel
- RabbitMQ實現延遲佇列MQ佇列