上一篇,我們學習了如何在Nacos中建立配置,以及如何使用Spring Cloud Alibaba的Nacos用戶端子產品來加載配置。在入門例子中,我們隻配置了Nacos的位址資訊,沒有配置任何其他與配置加載相關的其他内容。是以,接下來準備分幾篇說說大家問的比較多的一些實際使用的問題或疑問。
加載規則
在
《Spring Cloud Alibaba基礎教程:使用Nacos作為配置中心》一文中,我們的例子完全采用了預設配置完成。是以,一起來看看Spring Cloud Alibaba Nacos子產品預設情況下是如何加載配置資訊的。
首先,回顧一下,我們在入門例子中,Nacos中建立的配置内容是這樣的:
-
:alibaba-nacos-config-client.propertiesData ID
-
:DEFAULT_GROUPGroup
拆解一下,主要有三個元素,它們與具體應用的配置内容對應關系如下:
- Data ID中的
:對應用戶端的配置alibaba-nacos-config-client
,預設值為spring.cloud.nacos.config.prefix
,即:服務名${spring.application.name}
-
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、收藏、轉發給予支援!
前情回顧:
- 《Spring Cloud Alibaba基礎教程:使用Nacos實作服務注冊與發現》
- 《Spring Cloud Alibaba基礎教程:支援的幾種服務消費方式(RestTemplate、WebClient、Feign)》