05 nacos的Namespace(命名空間)

2021-10-20 19:33:07 字數 1864 閱讀 5356

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 服務發...