解決Springboot獲取不到nacos配置中心的配置問題
記錄一下Springboot獲取不到nacos配置中心的配置問題
由于項(xiàng)目使用的nacos老版本,存在風(fēng)險(xiǎn)bug, 需要將nacos升級(jí)至2.2.1及以上版本,版本升級(jí)完畢之后 啟動(dòng)項(xiàng)目發(fā)現(xiàn)項(xiàng)目開始報(bào)錯(cuò),提示dynamic-datasource can not find primary datasource
但是我明明在nacos中已經(jīng)配置了數(shù)據(jù)源,還會(huì)出現(xiàn)這樣的問題, 下意識(shí)覺得可能是沒有讀取到nacos的配置文件
nacos配置中心主要是在這個(gè)NacosConfigService的這個(gè)類下面。該接口下面主要有一些獲取配置,發(fā)布配置,增加監(jiān)聽器,刪除配置,刪除監(jiān)聽器等操作
首先在NacosPropertySourceBuilder下的loadNacosData方法中打上斷點(diǎn)發(fā)現(xiàn)this.configService.getConfig返回的data為空, 側(cè)面證明了確實(shí)沒有讀取到nacos中的配置信息
通過getConfig這個(gè)方法向下追蹤,在NacosConfigService的getConfigInner方法里面,就是具體的拉取配置的實(shí)現(xiàn),nacos首先是通過LocalConfigInfoProcessor.getFailover的方法獲取本地的配置, 當(dāng)本地配置返回空時(shí)才會(huì)去獲取nacos客戶端的配置,而this.worker.getServerConfig這個(gè)方法,就是進(jìn)行獲取遠(yuǎn)端的配置信息, 通過斷點(diǎn)發(fā)現(xiàn)response的返回也是空的,那么我繼續(xù)下沉追蹤到getServerConfig中
下沉到queryConfig方法時(shí)發(fā)現(xiàn)了問題,通過ConfigQueryRequest.build方法生成的ConfigQueryRequest請(qǐng)求, 在返回時(shí)竟然返回ErrorCode:300, message 為 config data not exist, 這就是表示我傳遞三個(gè)參數(shù), dataId, group, tenant 出現(xiàn)了問題
再回去nacos中反復(fù)檢查確定dataId和group沒問題的情況下, 那么就只剩下最后一個(gè)出現(xiàn)問題的參數(shù)了,那就是tenant, 在項(xiàng)目的配置文件bootstrap-dev.yml中, namespace輸入的是命名空間的名稱,而非命名空間的id,導(dǎo)入項(xiàng)目獲取失敗
最終通過修改namespace的值改名字為id, 成功啟動(dòng), 問題不大,還是因?yàn)閷?duì)nacos的掌握不熟練而導(dǎo)致的
以上就是解決Springboot獲取不到nacos配置中心的配置問題的詳細(xì)內(nèi)容,更多關(guān)于Springboot獲取不到nacos配置的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring注解驅(qū)動(dòng)之關(guān)于@Bean注解指定初始化和銷毀的方法
這篇文章主要介紹了Spring注解驅(qū)動(dòng)之關(guān)于@Bean注解指定初始化和銷毀的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09java多線程編程必備volatile與synchronized深入理解
這篇文章主要介紹了java多線程編程必備volatile與synchronized的深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Spring事件監(jiān)聽器@EventListener與publishEvent的使用
Spring可以通過事件監(jiān)聽器機(jī)制來處理應(yīng)用程序中的事件,本文主要介紹了Spring事件監(jiān)聽器@EventListener與publishEvent的使用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06java中Callback簡(jiǎn)單使用總結(jié)
正好學(xué)習(xí)到j(luò)ava Callback,就整理了一下,希望整理的文章內(nèi)容對(duì)大家有所幫助2017-04-04關(guān)于java入門與java開發(fā)環(huán)境配置詳細(xì)教程
這篇文章主要介紹了關(guān)于java入門與java開發(fā)環(huán)境配置詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03spring aop實(shí)現(xiàn)用戶權(quán)限管理的示例
本篇文章主要介紹了spring aop實(shí)現(xiàn)用戶權(quán)限管理的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12SpringBoot?Web項(xiàng)目增刪改查入門實(shí)戰(zhàn)案例
這篇文章主要給大家介紹了關(guān)于SpringBoot?Web項(xiàng)目增刪改查入門實(shí)戰(zhàn)的相關(guān)資料,文中詳細(xì)介紹了如何實(shí)現(xiàn)新增、刪除、修改和查詢員工的功能,并使用統(tǒng)一響應(yīng)結(jié)果進(jìn)行前后端交互,需要的朋友可以參考下2024-11-11