前情回顧:
- 《Spring Cloud Alibaba基礎教程:使用Nacos實現服務註冊與發現》
- 《Spring Cloud Alibaba基礎教程:支援的幾種服務消費方式(RestTemplate、WebClient、Feign)》
- 《Spring Cloud Alibaba基礎教程:使用Nacos作為配置中心》
上一篇,我們學習瞭如何在Nacos中建立配置,以及如何使用Spring Cloud Alibaba的Nacos客戶端模組來載入配置。在入門例子中,我們只配置了Nacos的地址資訊,沒有配置任何其他與配置載入相關的其他內容。所以,接下來準備分幾篇說說大家問的比較多的一些實際使用的問題或疑問。
載入規則
在《Spring Cloud Alibaba基礎教程:使用Nacos作為配置中心》一文中,我們的例子完全採用了預設配置完成。所以,一起來看看Spring Cloud Alibaba Nacos模組預設情況下是如何載入配置資訊的。
首先,回顧一下,我們在入門例子中,Nacos中建立的配置內容是這樣的:
Data ID
:alibaba-nacos-config-client.propertiesGroup
:DEFAULT_GROUP
拆解一下,主要有三個元素,它們與具體應用的配置內容對應關係如下:
- Data ID中的
alibaba-nacos-config-client
:對應客戶端的配置spring.cloud.nacos.config.prefix
,預設值為${spring.application.name}
,即:服務名 - Data ID中的
properties
:對應客戶端的配置spring.cloud.nacos.config.file-extension
,預設值為properties
- Group的值
DEFAULT_GROUP
:對應客戶端的配置spring.cloud.nacos.config.group
,預設值為DEFAULT_GROUP
在採用預設值的應用要載入的配置規則就是:Data ID=${spring.application.name}.properties
,Group=DEFAULT_GROUP
。
下面,我們做一些假設例子,方便大家理解這些配置之間的關係:
例子一:如果我們不想通過服務名來載入,那麼可以增加如下配置,就會載入到Data ID=example.properties
,Group=DEFAULT_GROUP
的配置內容了:
spring.cloud.nacos.config.prefix=example
例子二:如果我們想要載入yaml格式的內容,而不是Properties格式的內容,那麼可以通過如下配置,實現載入Data ID=example.yaml
,Group=DEFAULT_GROUP
的配置內容了:
spring.cloud.nacos.config.prefix=example
spring.cloud.nacos.config.file-extension=yaml
例子三:如果我們對配置做了分組管理,那麼可以通過如下配置,實現載入Data ID=example.yaml
,Group=DEV_GROUP
的配置內容了:
spring.cloud.nacos.config.prefix=example
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.group=DEV_GROUP
深入思考
上面,我們具體介紹了在Nacos中新增的各種配置與Spring Cloud應用中客戶端配置的對照關係。對於spring.cloud.nacos.config.prefix
和spring.cloud.nacos.config.file-extension
來說,沒有太多的花樣可以去揣摩,大部分使用者預設配置就可以使用,或者通過spring.cloud.nacos.config.file-extension
修改下配置格式的字尾。
但是對於spring.cloud.nacos.config.group
的配置來說,還是可以派一些特殊的作用,比如:用它來區分不同的產品組下各個應用的配置內容(解決可能應用名衝突的問題)、或者用它來區分不同用途的配置內容、再或者用它來區分不同環境的配置(Nacos下的配置緯度很多,我們可以通過不同的手段來實現多環境的配置,後面會專門寫一篇如何實現多環境的配置)等。
如果您對spring.cloud.nacos.config.group
還有什麼其他妙用,歡迎留言分享您的使用方案。
參考資料
程式碼示例
本系列教程的程式碼案例,都可以通過下面的倉庫檢視:
- Github:https://github.com/dyc87112/SpringCloud-Learning/
- Gitee:https://gitee.com/didispace/SpringCloud-Learning/
如果您對這些感興趣,歡迎star、follow、收藏、轉發給予支援!