Nacos 多環(huán)境配置
概述
我們在做項(xiàng)目開發(fā)的時(shí)候,生產(chǎn)環(huán)境和測試環(huán)境的一些配置可能會(huì)不一樣杆烁,有時(shí)候一些功能也可能會(huì)不一樣,所以我們可能會(huì)在上線的時(shí)候手工修改這些配置信息灭忠。Spring 為我們提供了 Spring Boot Profile 這個(gè)功能(Maven 也為我們提供了 Maven Profile)。我們只需要在啟動(dòng)的時(shí)候添加一個(gè)虛擬機(jī)參數(shù)座硕,激活自己環(huán)境所要用的 Profile 就可以了弛作。
操作起來很簡單,只需要為不同的環(huán)境編寫專門的配置文件华匾,如:application-dev.yml
映琳、application-prod.yml
, 啟動(dòng)項(xiàng)目時(shí)只需要增加一個(gè)命令參數(shù) --spring.profiles.active=
環(huán)境配置即可
java -jar 1.0.0-SNAPSHOT.jar --spring.profiles.active=prod
什么是 Nacos Config Profile
spring-cloud-starter-alibaba-nacos-config
在加載配置的時(shí)候蜘拉,不僅僅加載了以 dataid 為 ${spring.application.name}.${file-extension:properties}
為前綴的基礎(chǔ)配置萨西,還加載了 dataid 為 ${spring.application.name}-${profile}.${file-extension:properties}
的基礎(chǔ)配置。在日常開發(fā)中如果遇到多套環(huán)境下的不同配置旭旭,可以通過 Spring 提供的 ${spring.profiles.active}
這個(gè)配置項(xiàng)來配置谎脯。
使用 Nacos Config Profile
我們以 service-provider
項(xiàng)目為例,演示多環(huán)境配置效果持寄,不要忘記依賴 Nacos Config Starter
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
使用控制臺發(fā)布配置
通過瀏覽器訪問 http://192.168.141.132:8848/nacos 源梭,訪問 Nacos Server
- 發(fā)布一個(gè)名為
service-provider-config.yaml
的 測試環(huán)境 配置
spring:
application:
# 服務(wù)名
name: service-provider
cloud:
nacos:
discovery:
# 服務(wù)注冊中心
server-addr: 192.168.141.132:8848
server:
# 服務(wù)端口
port: 8070
management:
# 端點(diǎn)檢查(健康檢查)
endpoints:
web:
exposure:
include: "*"
- 發(fā)布一個(gè)名為
service-provider-config-prod.yaml
的 生產(chǎn)環(huán)境 配置
spring:
application:
# 服務(wù)名
name: service-provider
cloud:
nacos:
discovery:
# 服務(wù)注冊中心
server-addr: 192.168.141.132:8848
server:
# 修改了上面的端口號,區(qū)分配置的不同
port: 8071
management:
# 端點(diǎn)檢查(健康檢查)
endpoints:
web:
exposure:
include: "*"
修改客戶端配置
- 創(chuàng)建名為
bootstrap.properties
的配置文件并刪除之前創(chuàng)建的application.yml
配置文件
spring.application.name=service-provider-config
spring.cloud.nacos.config.server-addr=192.168.141.132:8848
spring.cloud.nacos.config.file-extension=yaml
- 創(chuàng)建名為
bootstrap-prod.properties
的配置文件
spring.profiles.active=prod
spring.application.name=service-provider-config
spring.cloud.nacos.config.server-addr=192.168.141.132:8848
spring.cloud.nacos.config.file-extension=yaml
測試多環(huán)境配置
此時(shí)我們有兩個(gè)配置文件稍味,分別為 bootstrap.properties
和 bootstrap-prod.properties
废麻,我們需要指定啟動(dòng)時(shí)加載哪一個(gè)配置文件
Run -> Edit Configurations -> Active profiles:
運(yùn)行項(xiàng)目并觀察日志
由上圖可知,我們成功加載了不同環(huán)境的配置