Nacos?Client的Bug解決方法記錄
起因
在Nacos的API方式使用中,當使用如下的代碼去進行注冊服務時,在不同的版本的Nacos當中出現(xiàn)了不同的結果。
try {
NamingService namingService = new NacosNamingService("localhost:8848");
namingService.registerInstance("wanna", "localhost", 8889);
namingService.registerInstance("wanna", "localhost", 8890);
TimeUnit.SECONDS.sleep(500);
} catch (Exception ex) {
ex.printStackTrace();
}分析
- 1.在使用
Nacos Client和NacosServer版本為1.4.2的版本當中,該代碼正常運行,也能往NacosServer當中注冊上去兩個Instance。 - 2.在使用
Nacos Client和NacosServer版本為2.0.2的版本當中,該代碼只能往NacosServer當中注冊一個Instance,后進行注冊的8890,將會替代之前的8889,NacosServer中只有一個Instance。 - 3.在
Nacos Client使用1.4.2的版本,Nacos Server使用2.0.2的版本中,也能正常注冊。 - 4.在
Nacos Client使用2.0.2的版本,Nacos Server使用1.4.2的版本中,Client直接報錯,不能啟動。
版本兼容適配


懵逼狀態(tài),搞了一晚上排查問題,懷疑是Nacos Client版本的問題?
給Github提了Issue,官方回復是,這是設計的問題,在Client2.0.x的版本當中,NamingService維護著一個長連接,如果要注冊別的服務,需要重新創(chuàng)建一個NamingService去注冊。(就很那個,官方文檔說了和之前的API兼容,這,算是兼容嗎,給的示例代碼都是這樣子的。。。找了老半天問題所在,根本不清楚這個問題,還好我最后換版本了)
以上就是Nacos Client的Bug解決方法記錄的詳細內容,更多關于Nacos Client Bug解決的資料請關注腳本之家其它相關文章!
相關文章
SpringBoot中TypeExcludeFilter的作用及使用方式
在SpringBoot應用程序中,TypeExcludeFilter通過過濾特定類型的組件,使它們不被自動掃描和注冊為bean,這在排除不必要的組件或特定實現(xiàn)類時非常有用,通過創(chuàng)建自定義過濾器并注冊到spring.factories文件中,我們可以在應用啟動時生效2025-01-01
Spring主配置文件(applicationContext.xml) 導入約束詳解
在本篇文章里我們給各位整理的是關于Spring主配置文件(applicationContext.xml) 導入約束的相關知識點內容,需要參考下。2019-08-08
詳解Springboot2.3集成Spring security 框架(原生集成)
這篇文章主要介紹了詳解Springboot2.3集成Spring security 框架(原生集成),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08

