SpringCloud Alibaba之Nacos配置中心

前言

前幾篇介紹了Nacos相關知識,又介紹了nacos作為註冊中心;今天老顧就分享一些Nacos作為配置中心,如何使用?

新建配置

打開nacos控制檯,操作配置列表

SpringCloud Alibaba之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就像報警,如圖所示![]

SpringCloud Alibaba之Nacos配置中心

注:我們這裡利用上一篇文章的goods-consumer消費者的項目

改造應用

創建配置文件名為bootstrap.yml,注意是bootstrap而不是application。原因如下

Nacos同springcloud-config一樣,在項目初始化時,要保證先從配置中心進行配置拉取,拉取配置之後,才能保證項目的正常啟動。springboot中配置文件的加載是存在優先級順序的,bootstrap優先級高於application

SpringCloud Alibaba之Nacos配置中心

必須的配置項spring.application.name,關聯nacos的dataID。

spring.cloud.nacos.discovery.server-addr指定註冊中心的地址,是用於微服務註冊的,如果你不需要註冊該服務,也可以去掉該項,並刪除discovery依賴

spring.cloud.nacos.config.server-addr指定配置中心的地址file-extension指定配置中心中配置文件的格式

增加了請求,獲取預警庫存,跟SpringCloud獲取配置一樣,使用@Value註解

SpringCloud Alibaba之Nacos配置中心

啟動應用,請求預警庫存

SpringCloud Alibaba之Nacos配置中心

如果我們想修改配置項的值,但應用不能重新啟動;這個也比較簡單,只需要在控制器類加入@RefreshScope註解,可以使當前類下的配置支持動態更新。

SpringCloud Alibaba之Nacos配置中心

啟動應用,發起請求

SpringCloud Alibaba之Nacos配置中心

在nacos控制檯更改配置項的值為30,再請求url如下

SpringCloud Alibaba之Nacos配置中心

消費服務goods-consumer沒有重新啟動,值就會改變,達到了熱更新。

歷史配置

Nacos會記錄配置文件的歷史版本,保留30天,同時還貼心的提供了一鍵回滾功能,回滾操作將會觸發配置更新。

SpringCloud Alibaba之Nacos配置中心

SpringCloud Alibaba之Nacos配置中心

重要的概念

Nacos配置有幾個重要的概念

SpringCloud Alibaba之Nacos配置中心

這張圖很重要。表述了namespace、group和service/dataId的包含關係。

Nacos給的最佳實踐表明,最外層的namespace是可以用於區分部署環境的,比如test,dev,prod等。同時,也有一個商業利用價值:

多租戶(以後會介紹)。以namespace為單位,給用戶開闢使用空間

其它兩個領域模型不用多解釋了,見名知意。其目的也非常明顯,就是為了能夠邏輯上區分兩個目標對象。

默認情況下,namespace=public,group=DEFAULT_GROUP

明白了這個數據模型後,新建若干個namespace:

SpringCloud Alibaba之Nacos配置中心

namespace順利創建成功後,會在每個一級頁面看到由namespace組成的TAB,可以任意切換namespace,對其下的數據進行操作。比如下圖的配置列表:

SpringCloud Alibaba之Nacos配置中心

總結

這一篇老顧介紹了nacos基本的配置中心用法,通過上面的測試,可見Nacos做配置中心,

與SpringCloud項目,也可以做到無縫銜接,切換到Nacos成本也很低;項目的其他配置不變,只需要指定配置中心地址,同時將配置文件外部管理

下一篇老顧介紹一下多環境下配置如何管理以及隔離,謝謝!!!

你的贊和關注是我繼續創作的動力~


分享到:


相關文章: