前情回顧:
- 《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、收藏、轉發給予支持!