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

相关文章
|
6天前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
423 34
|
1月前
|
缓存 安全 Java
Spring Security通用权限管理模型解析
Spring Security作为Spring生态的核心安全框架,结合RBAC与ACL权限模型,基于IoC与AOP构建灵活、可扩展的企业级权限控制体系,涵盖认证、授权流程及数据库设计、性能优化等实现策略。
151 0
|
7月前
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
8月前
|
人工智能 SpringCloudAlibaba 自然语言处理
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
2532 2
|
9月前
|
XML 监控 前端开发
Spring Boot中的WebFlux编程模型
Spring WebFlux 是 Spring Framework 5 引入的响应式编程模型,基于 Reactor 框架,支持非阻塞异步编程,适用于高并发和 I/O 密集型应用。本文介绍 WebFlux 的原理、优势及在 Spring Boot 中的应用,包括添加依赖、编写响应式控制器和服务层实现。WebFlux 提供高性能、快速响应和资源节省等优点,适合现代 Web 应用开发。
1049 15
|
10月前
|
SpringCloudAlibaba 负载均衡 Dubbo
【SpringCloud Alibaba系列】Dubbo高级特性篇
本章我们介绍Dubbo的常用高级特性,包括序列化、地址缓存、超时与重试机制、多版本、负载均衡。集群容错、服务降级等。
1397 8
【SpringCloud Alibaba系列】Dubbo高级特性篇
|
10月前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
9月前
|
人工智能 安全 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应用,提升业务价值。
845 4
|
9月前
|
人工智能 自然语言处理 Java
Spring Cloud Alibaba AI 入门与实践
本文将介绍 Spring Cloud Alibaba AI 的基本概念、主要特性和功能,并演示如何完成一个在线聊天和在线画图的 AI 应用。
2439 7