SpringBoot3整合SpringCloud啟動(dòng)后nacos報(bào)錯(cuò)獲取不到配置、無法注冊(cè)服務(wù)的解決方案
場(chǎng)景
嘗試從零搭建一個(gè)微服務(wù)項(xiàng)目,搭建基本框架后,本地啟動(dòng)程序連接遠(yuǎn)程nacos報(bào)錯(cuò)
一、依賴版本信息?
- SpringBoot 3.3.4
- SpringCloud 2023.0.3
- SpringCloudAlibaba 2023.0.3.2
- 阿里云部署nacos版本2.3.2
如果需要使用到nacos的服務(wù)注冊(cè)發(fā)現(xiàn)及配置中心的功能,那么要先保障引入nacos服務(wù)注冊(cè)和nacos配置中心的依賴
<!-- nacos 服務(wù)注冊(cè)中心 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- nacos 配置中心 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
想直接看配置的也可以參考下面最終配置文件
server: port: 9001 spring: application: name: auth-custom profiles: active: @profiles.active@ cloud: nacos: username: nacos password: nacos discovery: server-addr: nacos的IP+端口 # 具體分組名看nacos客戶端你是怎么配置的,一定要和nacos客戶端一致 group: DEFAULT_GROUP # 看服務(wù)是分屬哪個(gè)命名空間的,一定要和nacos客戶端中命名空間的ID一致 namespace: 705b282b-1699-488f-8b84-b8b920c29432 config: server-addr: nacos的IP+端口 # 具體分組名看nacos客戶端你是怎么配置的,一定要和nacos客戶端一致 group: DEFAULT_GROUP # 看服務(wù)是分屬哪個(gè)命名空間的,一定要和nacos客戶端中命名空間的ID一致 namespace: 705b282b-1699-488f-8b84-b8b920c29432 file-extension: yaml # 如果nacos客戶端有啟動(dòng)鑒權(quán),將nacos配置文件中的secret-key的值粘貼過來 secret-key: nacos配置文件中secret-key的值 config: import: - nacos:application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - nacos:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
二、 報(bào)錯(cuò)信息
1.No spring.config.import property has been defined
解決方法:
因?yàn)閱?dòng)文件是bootstrap.yml,springcloud 2020.0.2版本中把bootstrap的相關(guān)依賴從spring-cloud-starter-config中移除了,需要單獨(dú)引入spring-cloud-starter-bootstrap的依賴。
<!-- bootstrap依賴 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
2.本地可以登錄遠(yuǎn)程nacos控制臺(tái),但是服務(wù)注冊(cè)不上去,服務(wù)管理中的服務(wù)列表中是空的。但是如果連接本地nacos,服務(wù)能正常注冊(cè)上去,服務(wù)列表中能查看到相應(yīng)的微服務(wù)
解決方案
1、確保引入注冊(cè)中心依賴
2、確保nacos客戶端的IP和端口是正確的,并且group和namespace的值要與nacos客戶端一致
3、云服務(wù)器安全組需要開放8848、9848、9849 這個(gè)端口出來
3、 配置文件不存在 或 讀取不到配置文件中的屬性
解決方案
SpringBoot3兼容的SpirngCloud版本需要使用spring.config.import導(dǎo)入配置
如果出現(xiàn)以下報(bào)錯(cuò),提示配置文件不存在,在確保配置文件名稱是正確的情況下,并且nacos客戶端是開啟鑒權(quán)的,那么在配置文件中加上secret-key屬性值
Config data resource 'NacosConfigDataResource{properties=NacosConfigProperties{serverAddr='8.138.136.74:8848', encode='null', group='DEFAULT_GROUP', prefix='null', fileExtension='yaml', timeout=3000, maxRetry='null', configLongPollTimeout='null', configRetryTime='null', enableRemoteSyncConfig=false, endpoint='null', namespace='705b282b-1699-488f-8b84-b8b920c29432', accessKey='null', secretKey='null', ramRoleName='null', contextPath='null', clusterName='null', name='null'', shares=null, extensions=null, refreshEnabled=true}, optional=false, profiles=[Profiles@4287d447 active = '[dev]', default = '[default]', accepted = '[dev]'], config=NacosItemConfig{group='DEFAULT_GROUP', dataId='auth-custom-dev.yaml', suffix='yaml', refreshEnabled=true, preference=null}}' via location 'nacos:auth-custom-dev.yaml' does not exist Action: Check that the value 'nacos:auth-custom-dev.yaml' at class path resource [bootstrap.yml] - 24:9 is correct, or prefix it with 'optional:'
總結(jié)
正常按照提供的yaml文件,是能正常連接上nacos,并且服務(wù)注冊(cè)發(fā)現(xiàn)和配置拉取都是正常,如果有遇到其他問題,也歡迎留言。
到此這篇關(guān)于解決SpringBoot3整合SpringCloud啟動(dòng)后nacos報(bào)錯(cuò)獲取不到配置、無法注冊(cè)服務(wù)的文章就介紹到這了,更多相關(guān)SpringBoot3整合SpringCloud啟動(dòng)nacos報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java8實(shí)現(xiàn)List中對(duì)象屬性的去重方法
這篇文章主要介紹了java8實(shí)現(xiàn)List中對(duì)象屬性的去重方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03詳解Java8?CompletableFuture的并行處理用法
Java8中有一個(gè)工具非常有用,那就是CompletableFuture,本章主要講解CompletableFuture的并行處理用法,感興趣的小伙伴可以了解一下2022-04-04java基礎(chǔ)之String知識(shí)總結(jié)
今天帶大家來回顧一下Java基礎(chǔ),文中詳細(xì)總結(jié)了String的相關(guān)知識(shí),對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05Java運(yùn)算符解密之位運(yùn)算、移位運(yùn)算舉例詳解
這篇文章主要介紹了Java運(yùn)算符解密之位運(yùn)算、移位運(yùn)算的相關(guān)資料,Java中的位運(yùn)算符包括按位與&、按位或|、按位取反~和按位異或^,用于對(duì)數(shù)據(jù)的二進(jìn)制位進(jìn)行操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04java開發(fā)中基于JDBC連接數(shù)據(jù)庫實(shí)例總結(jié)
這篇文章主要介紹了java開發(fā)中基于JDBC連接數(shù)據(jù)庫的方法,以實(shí)例形式較為詳細(xì)的總結(jié)分析了Java使用JDBC的具體步驟與注意事項(xiàng),并附帶了一個(gè)完整實(shí)例加以說明,需要的朋友可以參考下2015-11-11Java將對(duì)象保存到文件中/從文件中讀取對(duì)象的方法
下面小編就為大家?guī)硪黄狫ava將對(duì)象保存到文件中/從文件中讀取對(duì)象的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12Struts中使用validate()輸入校驗(yàn)方法詳解
這篇文章主要介紹了Struts中使用validate()輸入校驗(yàn)方法,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-09-09