基礎環境
引入所需依賴包
<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
每個微服務都建立自己的名稱空間,使用配置分組區分環境