1. 程式人生 > >Spring Cloud Alibaba基礎教程:Nacos配置的加載規則詳解

Spring Cloud Alibaba基礎教程:Nacos配置的加載規則詳解

方案 用戶 per 回顧 應用名 增加 我們 pla 基礎

前情回顧:

  • 《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.properties
  • Group: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}.propertiesGroup=DEFAULT_GROUP

下面,我們做一些假設例子,方便大家理解這些配置之間的關系:

例子一:如果我們不想通過服務名來加載,那麽可以增加如下配置,就會加載到Data ID=example.propertiesGroup=DEFAULT_GROUP的配置內容了:

spring.cloud.nacos.config.prefix=example

例子二:如果我們想要加載yaml格式的內容,而不是Properties格式的內容,那麽可以通過如下配置,實現加載Data ID=example.yamlGroup=DEFAULT_GROUP的配置內容了:

spring.cloud.nacos.config.prefix=example
spring.cloud.nacos.config.file-extension=yaml

例子三:如果我們對配置做了分組管理,那麽可以通過如下配置,實現加載Data ID=example.yamlGroup=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.prefixspring.cloud.nacos.config.file-extension來說,沒有太多的花樣可以去揣摩,大部分用戶默認配置就可以使用,或者通過spring.cloud.nacos.config.file-extension修改下配置格式的後綴。

但是對於spring.cloud.nacos.config.group的配置來說,還是可以派一些特殊的作用,比如:用它來區分不同的產品組下各個應用的配置內容(解決可能應用名沖突的問題)、或者用它來區分不同用途的配置內容、再或者用它來區分不同環境的配置(Nacos下的配置緯度很多,我們可以通過不同的手段來實現多環境的配置,後面會專門寫一篇如何實現多環境的配置)等。

如果您對spring.cloud.nacos.config.group還有什麽其他妙用,歡迎留言分享您的使用方案。

參考資料

  • Nacos官方文檔

代碼示例

本系列教程的代碼案例,都可以通過下面的倉庫查看:

  • Github:https://github.com/dyc87112/SpringCloud-Learning/
  • Gitee:https://gitee.com/didispace/SpringCloud-Learning/

如果您對這些感興趣,歡迎star、follow、收藏、轉發給予支持!

以下專題教程也許您會有興趣

  • Spring Boot基礎教程
  • Spring Cloud基礎教程

Spring Cloud Alibaba基礎教程:Nacos配置的加載規則詳解