nacos 公共_Nacos数据模型
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集合,一個是持久化實例,一個非持久化實例。
文章來源: www.cnblogs.com,作者:白露非霜,版權歸原作者所有,如需轉載,請聯系作者。
原文鏈接:https://www.cnblogs.com/nijunyang/p/12313572.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的nacos 公共_Nacos数据模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 传音 itel Pad 1 平板电脑发布
- 下一篇: Xbox 多士炉照片曝光:有详细规格参数