SpringCloud Alibaba核心组件Nacos【服务多级存储模型&配置集群】第2章

简介: 本章主要诠释:服务集群属性和配置,服务分级存储是什么,什么是集群,为什么要引物服务分级,解决什么问题

 1,服务分级存储模型

这个服务分级存储模型概念听起来很高级,下面咱们仔细分析一波!!!

1.1:nacos分级存储是什么

服务:之前有服务的概念,之前有user-service 用户服务,和order-service的订单服务,这些都称之为服务。

问题出现:

一个服务可以包含多个实例,不过随着业务规模越来越大那么我们就会考虑更多的问题,比如说你把所有的实例都部署在一个机房,就像鸡蛋放在篮子里面,哪天篮子打翻了,鸡蛋不也就完了,由小比大,把多个实例都放在一个机房,万一机房失火了,断电了,等等因素导致机房罢工了,那么全部的实例都停止,这个服务不也就挂机了嘛!

解决问题:

为了解决这个问题,我们会将多个实例部署到多个机房,像阿里,京东,这些有钱了,在北京,上海等等几个地方布置几个机房分配几个实例过去,就算一个地方的机房挂机了,我还有好几个机房正常进行。

而我们nacos分级存储模型就是引入了这样一个机房或者说地域的概念

为此也部署了多个实例,像8081,8082,8083,等等,便于下文演示image.gif编辑

1.2:什么又是集群

而什么又是集群呢!如下图,在上海部署了两个实例,在杭州部署有两个实例,而nacos把同在一个机房中的多个实例称之为:集群,在杭州那就被称之为杭州的user-service集群,在北京的就称之为北京的user-service集群。

所以在nacos的分级模型中,一级是服务,二级是集群,三级是实例

image.gif编辑

image.gif编辑

1.3:为什么nacos 要引入这么一个服务分级

那么问题有来了,为什么nacos 要引入这么一个服务分级?为什么非要多加个集群的概念,我直接服务找实例不好嘛?

比方说有个杭州机房,里面有user-service集群,order-service集群,在上海,北京的机房中也同样有这种配置,现在order-service需要访问user-service,那么现在有两种方式访问:第一种访问本地局域网的,另外一种访问,上海或者北京的机房的user-service,那肯定选本地集群,因为局域网内的访问呢!速度快,延迟低,而跨越集群的访问比如访问上海的集群,那肯定延迟就要高了。

所以用集群的方式,把上海的实例,归纳为上海集群,把北京的实例,归纳为北京集群,优先访问同一个集群中的实例

image.gif编辑

杭州机房内的order-service应该优先访问同机房的user-service。

nacos引入这个分级概念就是为了防止跨集群进行访问或者说是尽可能的避免

1.3.1:服务跨集群调用问题

微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。当本集群内不可用时,才访问其它集群。

2,服务集群属性

如图这边我开启三个实例

image.gif编辑

image.gif编辑

查看一下服务中实例的详情信息,可以发现集群默认为DEFAULT

image.gif编辑

下面给三个实例,分别设为(北京集群),SH(上海集群)

2.1 给实例配置集群

2.1.1:修改文件yml,添加如下内容:

第一个修改了application.yml文件的集群配置:设置该实例在BJ集群

image.gif编辑

#端口号

server:

 port: 8888


spring:

 application:

   name: service-provider          #服务名

 cloud:

   nacos:

     discovery:

       server-addr: 127.0.0.1:8848   #nacos服务地址

       cluster-name: BJ   #配置集群名称,也就是机房位置,例如:BJ,北京

第二个修改了application-8081.yml文件的集群配置:设置该实例在JS集群

image.gif编辑

#server.port=8070

#spring.application.name=service-provider

#spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

#端口号

server:

 port: 8170


spring:

 application:

   name: service-provider          #服务名

 cloud:

   nacos:

     discovery:

       server-addr: 127.0.0.1:8848   #nacos服务地址

       cluster-name: JS          #配置集群名称,也就是机房位置,例如:JS,江苏

第三个修改了application-8082.yml文件的集群配置:设置该实例在JS集群

image.gif编辑

server:

 port: 8270


spring:

 application:

   name: service-provider          #服务名

 cloud:

   nacos:

     discovery:

       server-addr: 127.0.0.1:8848   #nacos服务地址

       cluster-name: JS          #配置集群名称,也就是机房位置,例如:JS,江苏

注意:

image.gif编辑

这两个yml文件的激活,修改启动项

-Dspring.profiles.active=8081

image.gif编辑

image.gif编辑

2.1.2:在Nacos控制台可以看到集群变化:

image.gif编辑

查看一下详情:

image.gif编辑


相关文章
|
19天前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
954 47
|
XML Java Spring
一文搞懂 Spring Boot 自动配置原理
Spring Boot 自动配置原理揭秘:通过 `@EnableAutoConfiguration` 加载 `META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports` 中的配置类,结合 `@Conditional` 按条件注入 Bean,实现“开箱即用”。核心在于约定大于配置,简化开发。
333 0
|
2月前
|
负载均衡 监控 Java
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
本文详细介绍了 Spring Cloud Gateway 的核心功能与实践配置。首先讲解了网关模块的创建流程,包括依赖引入(gateway、nacos 服务发现、负载均衡)、端口与服务发现配置,以及路由规则的设置(需注意路径前缀重复与优先级 order)。接着深入解析路由断言,涵盖 After、Before、Path 等 12 种内置断言的参数、作用及配置示例,并说明了自定义断言的实现方法。随后重点阐述过滤器机制,区分路由过滤器(如 AddRequestHeader、RewritePath、RequestRateLimiter 等)与全局过滤器的作用范围与配置方式,提
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
|
2月前
|
Java 关系型数据库 MySQL
Spring Boot自动配置:魔法背后的秘密
Spring Boot 自动配置揭秘:只需简单配置即可启动项目,背后依赖“约定大于配置”与条件化装配。核心在于 `@EnableAutoConfiguration` 注解与 `@Conditional` 系列条件判断,通过 `spring.factories` 或 `AutoConfiguration.imports` 加载配置类,实现按需自动装配 Bean。
|
20天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
1715 42
|
2月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
|
23天前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
23天前
|
人工智能 监控 Java
Spring AI Alibaba实践|后台定时Agent
基于Spring AI Alibaba框架,可构建自主运行的AI Agent,突破传统Chat模式限制,支持定时任务、事件响应与人工协同,实现数据采集、分析到决策的自动化闭环,提升企业智能化效率。
Spring AI Alibaba实践|后台定时Agent
|
2月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
1269 1
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
437 4

热门文章

最新文章