日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cloud Alibaba - 05 Nacos 领域模型_NameSpac/Group/Cluster

發布時間:2025/3/21 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud Alibaba - 05 Nacos 领域模型_NameSpac/Group/Cluster 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 新增命名空間
  • 工程改造
  • Namespace資源隔離
  • Group
  • Cluster
  • 源碼


新增命名空間

新增dev 和 prod , 記住命名空間ID


工程改造

artisan-cloud-nacosclient-order

artisan-cloud-nacosclient-product


Namespace資源隔離

我們來搞個例子: dev環境下的artisan-order-center 調用prod環境下的artisan-product-center

【改造點1 】

OrderInfoV2Controller 中 通過 nacos server獲取 prod的 服務地址

/*** 以下僅為演示,實際開發中并不會這樣使用*/// 從nacos server獲取 product-info的地址List<ServiceInstance> instances = discoveryClient.getInstances("artisan-product-center");if (null == instances || instances.isEmpty()) {return "Prod微服務沒有對應的實例可用";}// 從對應的服務實例中獲取訪問地址ServiceInstance serviceInstance = instances.get(0);String uri = serviceInstance.getUri().toString();log.info("從nacos server中獲取的prod地址:", uri);// 發起遠程Http調用ResponseEntity<ProductInfo> responseEntity = restTemplate.getForEntity(uri + "/selectProductInfoById/" + orderInfo.getProductNo(), ProductInfo.class);ProductInfo productInfo = responseEntity.getBody();

【改造點2 】

找到剛才的 命名空間ID 分別設置到 order 和 product

【測試】

NameSpace(默認的NameSpace是”public“ NameSpace可以進行資源隔離,比如dev環境下的NameSpace下的服務是調用不到prod的NameSpace下的微服務。 當然了,dev和prod最好不要共用一套nacos 注冊中心。


Group

不同的Group之間不允許調用

我們把namepsace都切換成一樣的, 設置不同的group 來測試下

【測試】

啟動服務,訪問


Cluster

同一個Namespace下 + 同一個Group下, 不同Cluster 內的服務,可以互相訪問

啟動服務,訪問

可以發現 同一個Namespace下 + 同一個Group下, 不同Cluster 內的服務,可以互相訪問。

但有個問題,如果全國多機房,雖然能通,但是網絡上可能會有延遲,盡量確保同一個Cluster內的優先訪問,這就需要編碼實現了。


源碼

https://github.com/yangshangwei/SpringCloudAlibabMaster

總結

以上是生活随笔為你收集整理的Spring Cloud Alibaba - 05 Nacos 领域模型_NameSpac/Group/Cluster的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。