client如何避免丟zookeeper事件

2021-12-30 11:11:09 字數 506 閱讀 7991

在很多分布式系統中,集群管理依賴zookeeper的watcher機制。由於watcher對於節點事件(另一種是連線事件)是一次性的,即一旦觸發就失效,若想再次獲取相應zk路徑上的事件,需要再次設定watcher。如果zk路徑在兩次watcher之間發生了改變,client端是無法感知到的,這就是所謂zk事件丟失。

思路:我們使用zk是為了處理某種問題,解決丟事件的問題,不必非得嚴格使用watcher,只要能解決實際問題即可;所以一種可行的方法是:

1、採取削弱client端對於zookeeper服務的依賴性,將client端對zk事件的處理退化為輪詢,zk事件作為觸**詢的條件:

2、先設定watcher,後修改資料(建立路徑)等;

偽**如下:

package main

func zk_watch(conn zk.conn, path string) {

// a loop

go func() {

var exists bool

var ch

如何避免 如何避免鋼板彈簧受損

鋼板彈簧是卡車上的貴重部件之一,它一旦發生故障或損壞,會影響車輛的行駛和操縱,甚至發生意外事故,所以司機師傅們平時要養成良好的駕駛習慣,避免卡車鋼板彈簧受損。鋼板彈簧在卡車懸架系統中起著緩衝作用,還擔負傳遞所有各向的力和力矩,以及決定車輪運動的軌跡,起到導向的作用。相比於氣囊式懸架,鋼板彈簧因為其結...

如何避免 小紅書如何避免降權!

小紅書如何避免降權!如何避免降權,避開了雷區自然可以提公升權重。1 暱稱不能帶任何的營銷產品詞 2 發布的筆記要統一主題 做美妝的統一發布跟美妝相關的筆記,做旅行的就發布跟旅行相關的筆記,很多人做小紅書喜歡跟風,什麼熱門就發什麼,其實這是乙個大忌。同一主題風格才更有利於體現你的專業性,讓系統知道你的...

如何避免死鎖

如何避免死鎖 1 使用事務時,盡量縮短事務的邏輯處理過程,及早提交或回滾事務 2 設定死鎖超時引數為合理範圍,如 3分鐘 10分種 超過時間,自動放棄本次操作,避免程序懸掛 3 優化程式,檢查並避免死鎖現象出現 4 對所有的指令碼和sp都要仔細測試,在正是版本之前。5 所有的sp都要有錯誤處理 通過...