上節第3步開啟了如下配置:
}nacos資料同步操作如下:
public class nacossyncdataservice extends nacoscachehandler implements autocloseable, syncdataservice
/*** start.
*/public void start()
@override
public void close() );
listeners.clear();
}}
nacos watch操作如下:
public class nacoscachehandler
protected void updatepluginmap(final string configinfo) ));
} catch (jsonparseexception e)
}protected void updateselectormap(final string configinfo) ));
} catch (jsonparseexception e)
}protected void updaterulemap(final string configinfo) ));
} catch (jsonparseexception e)
}protected void updatemetadatamap(final string configinfo) ));
} catch (jsonparseexception e)
}protected void updateauthmap(final string configinfo) ));
} catch (jsonparseexception e)
}@sneakythrows
private string getconfigandsignlistener(final string dataid, final listener listener)
protected void watcherdata(final string dataid, final onchange oc)
@override
public executor getexecutor()
};oc.change(getconfigandsignlistener(dataid, listener));
listeners.getordefault(dataid, new arraylist<>()).add(listener); // 新增乙個***,對資料進行更新
}protected inte***ce onchange
}
nacos 的資料基本都是採用json來進行資料同步的。資料的更新完全是採用全量式的更新,更新消耗的網路資源也會比較大。 Soul閘道器(九) Nacos同步資料
soul admin的nacos配置類nacosconfiguration初始化bean時通過nacosfactory建立配置服務。nacosdatachangedlistener 會監聽配置的變化,並將變化的配置存入本地記憶體,然後通過 nacos 的配置服務將變化的資料同步到 nacos 中 將...
soul閘道器資料同步方式之zookeeper
基於 zookeeper 的同步原理很簡單,主要是依賴 zookeeper 的 watch 機制,soul web 會監聽配置的節點,soul admin 在啟動的時候,會將資料全量寫入 zookeeper,後續資料發生變更時,會增量更新 zookeeper 的節點,與此同時,soul web 會監...
Soul API閘道器資料同步之Nacos資料同步
在前面的幾篇文章中已經介紹了http zk websocket這幾種同步資料的方式,也對其中的原始碼做了些分析。那麼本篇文章將開始nacos資料同步的解析了。還是和前面一樣要從配置檔案開始,還是soul admin soul bootstrap這兩個工程的配置檔案。soul admin.yml so...