namespace 隔離設計
命名空間(namespace)用於進行租戶粒度的隔離,namespace 的常用場景之一是不同環境的隔離,例如開發測試環境和生產環境的資源(如配置、服務)隔離等。
從乙個租戶(使用者)的角度來看,如果有多套不同的環境,那麼這個時候可以根據指定的環境來建立不同的
namespce,以此來實現多環境的隔離。
從多個租戶(使用者)的角度來看,每個租戶(使用者)可能會有自己的 namespace,每個租戶(使用者)的配置資料以及註冊的服務資料都會歸屬到自己的 namespace 下,以此來實現多租戶間的資料隔離。
命名空間管理
命名空間(namespace)是用於隔離多個環境的(如開發、測試、生產),而每個應用在不同環境的同乙個配置(如資料庫資料來源)的值是不一樣的。因此,我們應針對企業專案實際研發流程、環境進行規劃。如某軟體公司擁有開發、測試、生產三套環境,那麼我們應該針對這三個環境分別建立三個namespace。建立命名空間
檢視命名空間服務
資料模型
nacos在經過阿里內部多年生產經驗後提煉出的資料模型,是一種服務-集群-例項的三層模型,這樣基本可以滿足服務在所有場景下的資料儲存和管理。
服務
對外提供的軟體功能,通過網路訪問預定義的介面。
例項
提供乙個或多個服務的具有可訪問網路位址(ip:port)的程序,啟動乙個服務,就產生了乙個服務例項。
元資訊
nacos資料(如配置和服務)描述資訊,如服務版本、權重、容災策略、負載均衡策略、鑑權配置、各種自定義標籤 (label),從作用範圍來看,分為服務級別的元資訊、集群的元資訊及例項的元資訊。
集群
服務例項的集合,服務例項組成乙個預設集群, 集群可以被進一步按需求劃分,劃分的單位可以是虛擬集群,相同集群下的例項才能相互感知。
通過資料模型可知:
應用通過namespace、service、cluster(default)的配置,描述了該服務向哪個環境(如開發環境)的哪個集群註冊例項。
指定namespace的id:a1f8e863-3117-48c4-9dd3-e9ddc2af90a8(注意根據自己環境設定namespace的id)
指定集群名稱:default表示預設集群,可不填寫
指定服務的命名空間
spring::
name
: servcie‐service
cloud
:nacos
:discovery
:server‐addr
: 127.0.0.1:
8848
# 註冊中心位址
namespace
: 58853e5b-4a83-44e0-84da-f3acddb10fdd # dev 開發環境
cluster‐name
: default # 預設集群,可不填寫
Nacos系列 歡迎來到Nacos的世界!
nacos 是構建以 服務 為中心的現代應用架構 例如微服務正規化 雲原生正規化 的服務基礎設施。1 動態配置服務 支援以中心化 外部化和動態化的方式管理所有環境的配置。動態配置消除了配置變更時重新部署應用和服務的需要。配置中心化管理讓實現無狀態服務更簡單,也讓按需彈性擴充套件服務更容易。2 服務發...
Nacos系列 歡迎來到Nacos的世界!
nacos 是構建以 服務 為中心的現代應用架構 例如微服務正規化 雲原生正規化 的服務基礎設施。1 動態配置服務 支援以中心化 外部化和動態化的方式管理所有環境的配置。動態配置消除了配置變更時重新部署應用和服務的需要。配置中心化管理讓實現無狀態服務更簡單,也讓按需彈性擴充套件服務更容易。2 服務發...
Nacos系列 歡迎來到Nacos的世界!
nacos 是構建以 服務 為中心的現代應用架構 例如微服務正規化 雲原生正規化 的服務基礎設施。1 動態配置服務 支援以中心化 外部化和動態化的方式管理所有環境的配置。動態配置消除了配置變更時重新部署應用和服務的需要。配置中心化管理讓實現無狀態服務更簡單,也讓按需彈性擴充套件服務更容易。2 服務發...