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

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

6735aa4777de402592fbe82e8b40ee3d.png


新增命名空间


5f62fed71c524cf9a7ca631818be670a.png

f32e4af52b0a453e89cb1092a8d01ae2.png

新增dev 和 prod , 记住命名空间ID


fef2478507ce4f99b86d59d50bb6bda1.png


工程改造


artisan-cloud-nacosclient-order

artisan-cloud-nacosclient-product

78e1284b19564f4cb6131be58a1403d4.png


c83749688c704b76b5f4111e86751ee5.png


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

e62e0f32a17e44449e9995efe20cafc1.png

4acd91385b814e42996b11af4e3c9420.png

【测试】


c7f48a27a2cb49feb1723572bbf7ac13.pngNameSpace(默认的NameSpace是”public“ NameSpace可以进行资源隔离,比如dev环境下的NameSpace下的服务是调用不到prod的NameSpace下的微服务。 当然了,dev和prod最好不要共用一套nacos 注册中心。


Group


不同的Group之间不允许调用

我们把namepsace都切换成一样的, 设置不同的group 来测试下

ac24197f03014f8897b627d8353b160f.png


【测试】

启动服务,访问


c7f48a27a2cb49feb1723572bbf7ac13.png

Cluster


同一个Namespace下 + 同一个Group下, 不同Cluster 内的服务,可以互相访问


73f605442b7e42e496cc55567812ff62.png


启动服务,访问


b42c97a557e64ef2bfa5d796fbe301a1.png

可以发现 同一个Namespace下 + 同一个Group下, 不同Cluster 内的服务,可以互相访问。

但有个问题,如果全国多机房,虽然能通,但是网络上可能会有延迟,尽量确保同一个Cluster内的优先访问,这就需要编码实现了。


源码


https://github.com/yangshangwei/SpringCloudAlibabMaster

相关文章
|
2月前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
1804 60
|
9月前
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
10月前
|
人工智能 SpringCloudAlibaba 自然语言处理
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
3194 2
|
12月前
|
SpringCloudAlibaba 负载均衡 Dubbo
【SpringCloud Alibaba系列】Dubbo高级特性篇
本章我们介绍Dubbo的常用高级特性,包括序列化、地址缓存、超时与重试机制、多版本、负载均衡。集群容错、服务降级等。
1716 7
【SpringCloud Alibaba系列】Dubbo高级特性篇
|
12月前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
12月前
|
SpringCloudAlibaba JavaScript Dubbo
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
本文介绍了 Dubbo-Admin 的安装和使用步骤。Dubbo-Admin 是一个前后端分离的项目,前端基于 Vue,后端基于 Spring Boot。安装前需确保开发环境(Windows 10)已安装 JDK、Maven 和 Node.js,并在 Linux CentOS 7 上部署 Zookeeper 作为注册中心。
3405 1
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
|
11月前
|
人工智能 安全 Java
AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba
本次分享由阿里云智能集团云原生微服务技术负责人李艳林主讲,主题为“AI时代:从Spring Cloud Alibaba到Spring AI Alibaba”。内容涵盖应用架构演进、AI agent框架发展趋势及Spring AI Alibaba的重磅发布。分享介绍了AI原生架构与传统架构的融合,强调了API优先、事件驱动和AI运维的重要性。同时,详细解析了Spring AI Alibaba的三层抽象设计,包括模型支持、工作流智能体编排及生产可用性构建能力,确保安全合规、高效部署与可观测性。最后,结合实际案例展示了如何利用私域数据优化AI应用,提升业务价值。
1025 4
|
11月前
|
人工智能 自然语言处理 Java
Spring Cloud Alibaba AI 入门与实践
本文将介绍 Spring Cloud Alibaba AI 的基本概念、主要特性和功能,并演示如何完成一个在线聊天和在线画图的 AI 应用。
3106 8
|
8月前
|
存储 Kubernetes 安全
Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置
无论是使用 Nacos-Controller 实现配置的双向同步,还是直接在应用中接入 Nacos SDK 以获得更高级的配置管理特性,都能显著提升配置管理的灵活性、安全性和可维护性。使用 Nacos,您能够更好地管理和优化您的应用配置,从而提高系统的稳定性和可靠性。
703 49

热门文章

最新文章