這篇文章主要介紹“zk的watch機制詳細介紹”,在日常操作中,相信很多人在zk的watch機制詳細介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”zk的watch機制詳細介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
目前成都創(chuàng)新互聯(lián)公司已為近1000家的企業(yè)提供了網(wǎng)站建設、域名、雅安服務器托管、網(wǎng)站托管、企業(yè)網(wǎng)站設計、豐寧網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
watcher作用:通知狀態(tài)與事件類型 接口定義了process方法,定義了Event接口,包含KeeperState(通知時zk狀態(tài)),EventType說明event類型
void process(WatchedEvent event);回調函數(shù)實現(xiàn)該函數(shù),表示該event執(zhí)行行為相關邏輯
WatchedEvent
描述zk檢測到的狀態(tài)變化事件,回應變化,發(fā)生了什么,zk當前狀態(tài),發(fā)生事件znode的路徑
/**將屬性轉換成網(wǎng)絡傳輸?shù)腤atcherEvent
* Convert WatchedEvent to type that can be sent over network
*/
public WatcherEvent getWrapper() {
return new WatcherEvent(eventType.getIntValue(), keeperState.getIntValue(), path);
}
WatcherEvent
是一個接口,實現(xiàn)了Record,屬性有type,state,path,是網(wǎng)絡傳輸?shù)姆庋b
ClientWatchManager接口
根據(jù)event得到需要通知的watcher集合,實現(xiàn)類為ZKWatcherManager
屬性:
private final Map> dataWatches = new HashMap >();//數(shù)據(jù)監(jiān)聽集合 private final Map > existWatches = new HashMap >();//已經(jīng)存在監(jiān)聽集合 private final Map > childWatches = new HashMap >();//子節(jié)點監(jiān)聽集合 private boolean disableAutoWatchReset; ZKWatchManager(boolean disableAutoWatchReset) { this.disableAutoWatchReset = disableAutoWatchReset; } protected volatile Watcher defaultWatcher;
方法:添加watcher
刪除watcher 三種類型節(jié)點的集合變化
涉及監(jiān)聽類型 enum WatcherType { Children(1), Data(2), Any(3); }
materialize()實現(xiàn)方法
WatcherSetEventPair
將event以及對應需要觸發(fā)的watches集合進行組合綁定,是一個包裝類
private static class WatcherSetEventPair { private final Setwatchers; private final WatchedEvent event; public WatcherSetEventPair(Set watchers, WatchedEvent event) { this.watchers = watchers; this.event = event; } }
UML類圖
zk允許客戶端向服務端注冊一個監(jiān)聽,指定事件觸發(fā)監(jiān)聽時,服務端向客戶端發(fā)送監(jiān)聽事件通知,以便客戶端完成邏輯操作
特性:
一次性,watcher被觸發(fā),zk都將它從相應的相應存儲中移除,注冊一次,觸發(fā)一次
客戶端串行執(zhí)行,客戶端watcher回調是一個串行過程
輕量:包含事件類型 通知狀態(tài),節(jié)點路徑
到此,關于“zk的watch機制詳細介紹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
當前標題:zk的watch機制詳細介紹
URL網(wǎng)址:http://weahome.cn/article/pdjcch.html