基礎環境
引入所需依賴包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
創建一個 bootstrap.properties
或 bootstrap.yaml
。其中指定項目名與配置中心服務器地址
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
最后需要再配置中心添加一個數據集(Data Id),通常是「應用名.properties」。新建完后就可以給“配置內容”中添加任何配置,可以通過@Value("${配置名}")
獲取到配置。如果還需要動態刷新,可以給類加上 @RefreshScope
。
@RefreshScope
public class CouponController {
@Value("${author.name}")
private String name;
}
dataID
在 Nacos Config Starter 中,dataId 的拼接格式如下
${prefix} - ${spring.profiles.active} . ${file-extension}
-
prefix
默認為spring.application.name
的值,也可以通過配置項spring.cloud.nacos.config.prefix
來配置。 -
spring.profiles.active
即為當前環境對應的 profile,詳情可以參考 Spring Boot文檔注意,當 active profile 為空時,對應的連接符
-
也將不存在,dataId 的拼接格式變成${prefix}
.${file-extension}
-
file-extension
為配置內容的數據格式,可以通過配置項spring.cloud.nacos.config.file-extension
來配置。 目前只支持properties
類型。
group
group
默認為DEFAULT_GROUP
,可以通過spring.cloud.nacos.config.group
配置。
Nacos 作為配置中心的更多細節
命名空間
用於進行租戶粒度的配置隔離。不同的命名空間下,可以存在相同的 Group 或 DataID 的配置。Namespace 的常用場景之一是不同環境的配置的區分隔離。例如開發測試環境和生產環境的資源(如配置、服務)隔離等。
默認的命名空間是 public(保留空間)
:默認新增的所有配置都在 public
空間下。
例如有開發、測試、生產三個環境,此時需要將生產環境的配置切換到開發環境的配置,那么就可以使用命名空間快速切換不同的環境配置,需要在 bootstrap
配置中修改配置,配置如下
#命名空間ID
spring.cloud.nacos.config.namespace=24b7cf49-b115-4d1f-85a7-fdb44d9ec559
配置集
一組相關或者不相關的配置項的集合稱為配置集。在系統中,一個配置文件就是一個配置集,包含了系統的各個方面的配置。例如,一個配置集可能包含了數據源、線程池、日志級別等配置項。
配置集ID
類似配置文件名,在Nacos中叫Data ID
配置分組
默認所有的配置集都屬於:DEFAULT_GROUP
可以通過 bootstrap
配置文件中指定使用哪個配置分組
spring.cloud.nacos.config.group=DEFAULT_GROUP
每個微服務都創建自己的命名空間,使用配置分組區分環境