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