Spring Cloud Alibaba 教程 | Nacos(四)

Nacos環境隔離

Nacos管理臺有一個單獨的菜單“命名空間”,裏面默認存在一個名爲“public”的默認命名空間,我們在使用Nacos時不管是作爲註冊中心還是配置中心,都是作用在該命名空間之下的,那麼這個命名空間到底起着什麼作用呢?其實Nacos基於Namespace幫助用戶邏輯隔離多個命名空間,這可以幫助用戶更好的管理測試、預發、生產等多環境服務和配置,讓每個環境的同一個配置(如數據庫數據源)可以定義不同的值。

在這裏插入圖片描述
我們明白了namespace是爲了起到了環境隔離作用而出現的,其實不光是namespace,group和Data Id也可以起到環境隔離的作用。Data Id的值爲:${spring.cloud.nacos.config.prefix}- ${spring.profile.active}. ${spring.cloud.nacos.config.file-extension},而spring.profiles.active是可以區分不同環境的。所以如何合理使用namespace、group和Data Id去區分不同的環境,是我們在使用Nacos時必須要仔細考慮的一個問題。
在這裏插入圖片描述

經典案例

Nacos是阿里巴巴工程師編寫的,是運用在大規模平臺項目當中的,所以站在他們的角度思考問題會讓我們更加理解他們這樣設計環境隔離的目的。假設我們現在要做一個大平臺項目,大平臺項目會爲各個企業提供服務支持,同時不同的企業還存在不同的子項目,並且每個子項目都需要有多個配置環境,如下圖:
在這裏插入圖片描述
面對這種需求時合理使用Nacos的環境隔離策略更夠讓我們節省不少的時間成本。

  • 對於不同企業這一層我們可以使用namespace進行區分。
  • 對於企業下面不同子項目我們可以使用group進行區分。
  • 對於每個子項目不同的環境我們可以使用Data Id進行區分。

根據上面的環境隔離策略,假如我們需要添加一個B企業下面的B子項目的nacos-provider模塊的測試環境配置,那麼可以這樣配置:

第一步:添加命名空間B企業。
在這裏插入圖片描述
第二步:配置列表添加配置文件,group代表項目,Data Id代表模塊以及不同的運行環境。
在這裏插入圖片描述
在這裏插入圖片描述
第三步:修改nacos-provider模塊指定namespace、group和active。
在這裏插入圖片描述
第四步:運行nacos-provider模塊驗證結果。
在這裏插入圖片描述
在這裏插入圖片描述

第五步:使用啓動參數指定環境。這樣雖然實現了環境隔離,但是是硬編碼的方式,因爲我們在bootstrap.yml寫死了環境參數,實際開發中應該使用啓動參數來指定。

-Dspring.cloud.nacos.config.namespace=bb9f6e91-3455-4020-903f-6a2726284e62
-Dspring.cloud.nacos.config.group=project_B
-Dspring.profiles.active=TEST

在這裏插入圖片描述

關注公衆號瞭解更多原創博文

Alt

發佈了110 篇原創文章 · 獲贊 116 · 訪問量 90萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章