前言
前幾篇介紹了Nacos相關知識,又介紹了nacos作為註冊中心;今天老顧就分享一些Nacos作為配置中心,如何使用?
新建配置
打開nacos控制檯,操作配置列表
設置DataId,Data ID它的定義規則是:
{spring.profile.active}.${file-extension}
1、prefix 默認為 spring.application.name 的值,也可以通過配置項spring.cloud.nacos.config.prefix 來配置。
2、spring.profile.active 即為當前環境對應的 profile,可以通過配置項 spring.profile.active 來配置。
3、file-exetension 為配置內容的數據格式,可以通過配置項 spring.cloud.nacos.config.file-extension 來配置。目前只支持 properties 和 yaml 類型。
注意:當 spring.profile.active 為空時,對應的連接符 - 也將不存在
dataId 的拼接格式變成 prefix.prefix.{file-extension}
這裡創建Data Id 為goods-consumer.yml的配置文件,其中Group為默認的DEFAULT_GROUP,配置文件的格式也相應的選擇yaml,其內添加商品預警庫存配置goods.****crisis****_stock=10,到剩餘數為10就像報警,如圖所示![]
注:我們這裡利用上一篇文章的goods-consumer消費者的項目
改造應用
創建配置文件名為bootstrap.yml,注意是bootstrap,而不是application。原因如下
Nacos同springcloud-config一樣,在項目初始化時,要保證先從配置中心進行配置拉取,拉取配置之後,才能保證項目的正常啟動。springboot中配置文件的加載是存在優先級順序的,bootstrap優先級高於application
必須的配置項spring.application.name,關聯nacos的dataID。
spring.cloud.nacos.discovery.server-addr指定註冊中心的地址,是用於微服務註冊的,如果你不需要註冊該服務,也可以去掉該項,並刪除discovery依賴
spring.cloud.nacos.config.server-addr指定配置中心的地址,file-extension指定配置中心中配置文件的格式
增加了請求,獲取預警庫存,跟SpringCloud獲取配置一樣,使用@Value註解
啟動應用,請求預警庫存
如果我們想修改配置項的值,但應用不能重新啟動;這個也比較簡單,只需要在控制器類加入@RefreshScope註解,可以使當前類下的配置支持動態更新。
啟動應用,發起請求
在nacos控制檯更改配置項的值為30,再請求url如下
消費服務goods-consumer沒有重新啟動,值就會改變,達到了熱更新。
歷史配置
Nacos會記錄配置文件的歷史版本,保留30天,同時還貼心的提供了一鍵回滾功能,回滾操作將會觸發配置更新。
重要的概念
Nacos配置有幾個重要的概念
這張圖很重要。表述了namespace、group和service/dataId的包含關係。
Nacos給的最佳實踐表明,最外層的namespace是可以用於區分部署環境的,比如test,dev,prod等。同時,也有一個商業利用價值:
多租戶(以後會介紹)。以namespace為單位,給用戶開闢使用空間。其它兩個領域模型不用多解釋了,見名知意。其目的也非常明顯,就是為了能夠邏輯上區分兩個目標對象。
默認情況下,namespace=public,group=DEFAULT_GROUP。
明白了這個數據模型後,新建若干個namespace:
namespace順利創建成功後,會在每個一級頁面看到由namespace組成的TAB,可以任意切換namespace,對其下的數據進行操作。比如下圖的配置列表:
總結
這一篇老顧介紹了nacos基本的配置中心用法,通過上面的測試,可見Nacos做配置中心,
與SpringCloud項目,也可以做到無縫銜接,切換到Nacos成本也很低;項目的其他配置不變,只需要指定配置中心地址,同時將配置文件外部管理。下一篇老顧介紹一下多環境下配置如何管理以及隔離,謝謝!!!
你的贊和關注是我繼續創作的動力~
閱讀更多 享學課堂online 的文章