nacos 公共 Nacos資料模型

2021-10-13 06:07:10 字數 1301 閱讀 9710

nacos 資料模型 key 由三元組唯一確定, namespace預設是空串,公共命名空間(public),分組預設是 default_group。

以上都是nacos官網上面的及描述,綜合一下應該是這個樣子

可以在nacos控制台看到與之對應的介面

我們來看下這些東西都是用來幹嘛的,

namespace可以用來進行資源的隔離,比如我們dev環境的服務和test環境的服務都往同乙個nacos服務上面註冊,dev環境是呼叫不到test環境的服務的。

我們在nacos控制台新建兩個namespace,test和dev會生成兩個id

設定我們訂單服務和庫存服務的namespace,乙個為dev乙個為test

再來檢視nacos控制台的服務列表會看見兩個服務並不在public的命名空間下了,而是去到了test和dev下面,呼叫我們建立訂單的介面,會發現在訂單服務裡面無法去扣減庫存了。因為這兩個服務現在已經不在同乙個namespace下面了,無法進行呼叫了。

group顧名思義就是分組了,比如訂單和支付服務是支付組,庫存物流屬於物流組,不同的分組之前的服務也是不能進行呼叫的。將上面的服務設定成同樣的namespace之後,發現服務可以呼叫了。但是我們有設定成不同的分組,發現服務又不能呼叫了。

兩個擴充套件點:spring.cloud.nacos.discovery.cluster-name引數

cluster-name,可以設定上之後通過自己的負載均衡演算法可以實現優先同集群呼叫,減少網路開銷,比如在成都這邊都有部署訂單服務和庫存服務,那麼訂單調庫存的時候優先呼叫成都機房的庫存服務(spring.cloud.nacos.discovery.cluster-name=cd)。

spring.cloud.nacos.discovery.metadata引數

元資料引數可以配置一些額外的資訊,比如設定乙個版本進去,通過自己的負載均衡演算法實現同版本之間的服務呼叫。比如線上有10個訂單服務和10個庫存服務都是v1版本,現在改部分改動,都上了2個v2版本,通過實現我們自己的負載演算法,使得v2版本的訂單只能呼叫v2庫存服務。

以上的資料模型詳見nacos原始碼:com.alibaba.nacos.naming.core.servicemanager類

這個雙層map的key分別是namespace和group::servicename,

com.alibaba.nacos.naming.core.service中可以看到有乙個map,

com.alibaba.nacos.naming.core.cluster中才是具體的服務例項com.alibaba.nacos.naming.core.instance的set集合,乙個是持久化例項,乙個非持久化例項。

nacos 負載策略 什麼是 Nacos

歡迎來到 nacos 的世界!nacos 致力於幫助您發現 配置和管理微服務。nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現 服務配置 服務元資料及流量管理。nacos 幫助您更敏捷和容易地構建 交付和管理微服務平台。nacos 是構建以 服務 為中心的現代應用架構 例如微服務正...

Nacos資料模型

對於nacos配置管理,通過namespace group date id能夠定位到乙個配置集,nacos資料模型如下所示 可用於進行不同環境的配置隔離。例如 配置分組是對配置集進行分組。通過乙個有意義的字串 如 buy 或 trade 來表示。不同的配置分組下可以有相同的配置集 data id 當...

nacos配置共享 nacos配置中心使用

nacos不僅可以作為註冊中心使用,還可以作為配置中心使用。相比於使用spring cloud config server來說,我們可以不用再去建乙個配置檔案的git倉庫,直接可以在nacos的控制台進行操作,同時配置檔案熱更新也更為方便 nacos不僅可以作為註冊中心使用,還可以作為配置中心使用。...