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编辑


相关文章
|
1月前
|
监控 负载均衡 Java
5 大 SpringCloud 核心组件详解,8 张图彻底弄懂
本文图文详解 Spring Cloud 的五大核心组件,帮助深入理解和掌握微服务架构。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
5 大 SpringCloud 核心组件详解,8 张图彻底弄懂
|
2月前
|
存储 数据可视化 Java
基于MicrometerTracing门面和Zipkin实现集成springcloud2023的服务追踪
Sleuth将会停止维护,Sleuth最新版本也只支持springboot2。作为替代可以使用MicrometerTracing在微服务中作为服务追踪的工具。
157 1
|
2天前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
1月前
|
存储 Java Nacos
Spring Cloud+Nacos+KMS 动态配置最佳实践
本文讲述了 Spring Cloud 应用中结合 Nacos 实现了运行期配置动态更新的功能,以及在此基础上结合 KMS 在不改动代码的情况下对应用使用的敏感配置进行保护,解决将配置迁移到 Nacos 中可能存在的数据安全顾虑,并对其底层工作原理做了简单介绍。
458 12
|
1月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
65 3
|
1月前
|
负载均衡 算法 Java
除了 Ribbon,Spring Cloud 中还有哪些负载均衡组件?
这些负载均衡组件各有特点,在不同的场景和需求下,可以根据项目的具体情况选择合适的负载均衡组件来实现高效、稳定的服务调用。
90 5
|
2月前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
178 1
Springcloud Alibaba + jdk17+nacos 项目实践
|
3月前
|
消息中间件 存储 Java
SpringCloud基础9——服务异步通信-高级篇
消息可靠性、死信交换机、惰性队列、MQ集群
SpringCloud基础9——服务异步通信-高级篇
|
3月前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
3月前
|
Java API 对象存储
微服务魔法启动!Spring Cloud与Netflix OSS联手,零基础也能创造服务奇迹!
这段内容介绍了如何使用Spring Cloud和Netflix OSS构建微服务架构。首先,基于Spring Boot创建项目并添加Spring Cloud依赖项。接着配置Eureka服务器实现服务发现,然后创建REST控制器作为API入口。为提高服务稳定性,利用Hystrix实现断路器模式。最后,在启动类中启用Eureka客户端功能。此外,还可集成其他Netflix OSS组件以增强系统功能。通过这些步骤,开发者可以更高效地构建稳定且可扩展的微服务系统。
67 1