SpringBoot3.x集成nacos并實(shí)現(xiàn)多環(huán)境配置的操作步驟
一、springboot版本
springboot3.0.x 和springboot3.1.x 可直接使用nacos-config-spring-boot-starter 包。
springboot >=3.2.x 需要使用spring-cloud-starter-alibaba-nacos-config包,因?yàn)槌R?guī)包在我發(fā)布該文時(shí)nacos官方還沒更新,已更新的版本只支持到3.1.x,cloud的包2024年4月份進(jìn)行了更新,可以支持3.2.x及以上版本。
二、nacos安裝部署
nacos1.x安裝、操作請查看官方文檔Nacos 快速開始 | Nacos
使用nacos1.x版本的用戶請忽略【安裝部署】后面的內(nèi)容,直接跳到 二、springboot3.x集成nacos部分。
springboot3.x集成Nacos2.x升級和安裝、操作請查看官方文檔Nacos 2.0 升級文檔 | Nacos,權(quán)限配置請參照Authorization | Nacos
nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2個端口。新增端口是在配置的主端口(server.port)基礎(chǔ)上,進(jìn)行一定偏移量自動生成。
端口 | 與主端口的偏移量 | 描述 |
---|---|---|
9848 | 1000 | 客戶端gRPC請求服務(wù)端端口,用于客戶端向服務(wù)端發(fā)起連接和請求 |
9849 | 1001 | 服務(wù)端gRPC請求服務(wù)端端口,用于服務(wù)間同步等 |
7848 | -1000 | Jraft請求服務(wù)端端口,用于處理服務(wù)端間的Raft相關(guān)請求 |
如果存在防火墻或者nginx端口轉(zhuǎn)發(fā)問題,需要進(jìn)行相應(yīng)的端口 暴露配置。如在nginx中,在已經(jīng)暴露8848(x)的基礎(chǔ)上,需要額外暴露9848(x+1000)。9849和7848端口為服務(wù)端之間的通信端口,請勿暴露到外部網(wǎng)絡(luò)環(huán)境和客戶端測。
三、springboot3.x集成nacos
1、添加依賴
nacos1.x版本用戶,請?zhí)砑尤缦乱蕾?/p>
<!--nacos配置中心--> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.3</version> </dependency>
注意,springboot3.x集成該版本啟動項(xiàng)目時(shí)能從nacos加載配置文件信息,但是通過@NacosValue注解取不到值, 需要把@NacosValue的地方替換為@Value注解,但是這樣的話就不能動態(tài)刷新配置了,只能重啟項(xiàng)目生效,只能是權(quán)益之計(jì),想要徹底兼容的話就看nacos官方出不出兼容的nacos1.x版本的包了,不然只能升級到nacos2.x版本。
nacos2.x版本用戶,如果你的springboot版本是3.0.x或者3.1.x版本,請?zhí)砑酉旅娴囊蕾?/p>
<!--nacos配置中心--> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.3.0-RC</version> </dependency>
nacos2.x版本用戶,如果你的springboot版本是3.2.x及以上,請?zhí)砑觕loud的包
<!--nacos配置中心--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2023.0.1.2</version> </dependency>
2、配置文件中添加nacos配置,以常規(guī)包為例,如果是cloud的包,同理參考后面cloud的配置即可。
(1)單個環(huán)境配置
nacos: config: #是否開啟Nacos配置預(yù)加載 bootstrap: enable: true data-id: demo-boot-v3 type: yaml group: DEFAULT_GROUP auto-refresh: true server-addr: 127.0.0.1:8848 namespace: 0f72f102-23c1-4176-869f-91f31c42a07e bootstrap: log: enable: true #如果開啟認(rèn)證的話需要用戶名和密碼,未開啟的話請注釋 username: nacos password: nacos
(2)多環(huán)境配置,以開發(fā)環(huán)境dev和生產(chǎn)環(huán)境pro為例
spring: profiles: #指定要加載的配置 active: dev nacos: config: #是否開啟Nacos配置預(yù)加載 bootstrap: enable: true data-id: demo-boot-v3 type: yaml group: DEFAULT_GROUP auto-refresh: true --- #開發(fā)環(huán)境dev spring: config: activate: on-profile: dev nacos: config: #nacos的地址,替換成測試環(huán)境的實(shí)際地址即可 server-addr: 127.0.0.1:8848 #命名空間,替換為測試環(huán)境的實(shí)際命名空間即可 namespace: 0f72f102-23c1-4176-869f-91f31c42a07e bootstrap: log: enable: true #如果開啟認(rèn)證的話需要用戶名和密碼 username: nacos password: nacos --- #生產(chǎn)環(huán)境pro spring: config: activate: on-profile: pro nacos: config: #nacos的地址,替換成線上的實(shí)際地址即可 server-addr: 127.0.0.1:8848 #命名空間,替換為線上的實(shí)際命名空間即可 namespace: 0f72f102-23c1-4176-869f-91f31c42a07e bootstrap: log: enable: true #如果開啟認(rèn)證的話需要用戶名和密碼 username: nacos password: nacos
(3)spring cloud nacos配置參考
spring: profiles: active: local config: import: #使用nacos配置 demo-boot-v3對應(yīng)上面的data-id nacos:demo-boot-v3 cloud: nacos: config: file-extension: yaml group: DEFAULT_GROUP refresh-enabled: true --- # local spring: config: activate: on-profile: local cloud: nacos: config: server-addr: 127.0.0.1:8848 namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c #如果開啟認(rèn)證的話需要用戶名和密碼,未開啟的話請注釋 username: nacos password: nacos --- # dev spring: config: activate: on-profile: dev cloud: nacos: config: server-addr: 127.0.0.1:8848 namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c #如果開啟認(rèn)證的話需要用戶名和密碼,未開啟的話請注釋 username: nacos password: nacos --- # pro spring: config: activate: on-profile: pro cloud: nacos: config: server-addr: 127.0.0.1:8848 namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c #如果開啟認(rèn)證的話需要用戶名和密碼,未開啟的話請注釋 username: nacos password: nacos
注意這里nacos:demo-boot-v3是一個整體值,中間的冒號后面沒有空格,他們的 key是:spring.config.import,demo-boot-v3換成你的data-id即可。
3、啟動項(xiàng)目
以上就是SpringBoot3.x集成nacos并實(shí)現(xiàn)多環(huán)境配置的操作步驟的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot3.x nacos多環(huán)境配置的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java中BigDecimal除法使用不當(dāng)導(dǎo)致精度問題
本文主要介紹了Java中BigDecimal除法使用不當(dāng)導(dǎo)致精度問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11SpringBoot 文件或圖片上傳與下載功能的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot 文件或圖片上傳與下載功能的實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02利用ssh實(shí)現(xiàn)服務(wù)器文件上傳下載
這篇文章主要為大家詳細(xì)介紹了如何利用ssh實(shí)現(xiàn)服務(wù)器文件上傳下載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09Java ArrayList 實(shí)現(xiàn)實(shí)例講解
ArrayList是基于數(shù)組實(shí)現(xiàn)的,是一個動態(tài)數(shù)組,其容量能自動增長,類似于C語言中的動態(tài)申請內(nèi)存,動態(tài)增長內(nèi)存。這篇文章主要介紹了java ArrayList 實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2016-11-11解決static類使用@Value獲取yml文件獲取不到的問題
在靜態(tài)類中直接使用@Value注解無法獲取yml文件中的配置,解決方案是在工具類Utils中創(chuàng)建靜態(tài)的setter方法,并從外部類ServiceClass中調(diào)用這個方法來設(shè)置值,這種方法通過外部調(diào)用來間接設(shè)置靜態(tài)變量的值,從而成功讀取yml配置2024-09-09帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之前綴,中綴和后綴表達(dá)式
這篇文章主要為大家介紹了Java的前綴,中綴和后綴表達(dá)式 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01