Skip to content

Spring Cloud 介绍

微服务是分布式架构的一种,所谓分布式就是把服务进行拆分,每个服务独立运行,又可以相互调用。在这个或称中会出现各种各样的问题。

而 spring cloud 是一个开源的微服务框架,它解决了服务拆分时的服务治理问题。

相关网址

微服务

传统开发中使用的单体架构,将所有的业务全部写在一起,随着业务愈来愈复杂,代码耦合度也越来越大,程序愈发臃肿,这使得后期维护的成本也大大增加。

而微服务是对服务进行拆分后,每个服务独立运行,在一个项目中由多个服务构成服务集群。

这时会遇到一些问题,如 一个功能往往需要多个服务共同完成,因此服务之间也需要进行通信,而当功能越来越多,服务得关系也就越来越复杂。

单靠人力维护十分困难,因此微服务会有一个 注册中心,用来记录每一个服务的 ip、端口、作用等信息。

当一个服务想要调用另一个服务时,可以通过注册中心来获得目标的信息。

在正式的开发过程中还有需多诸如此类的问题,微服务为对应这些问题也衍生出了需多解决办法,如:

  • 注册中心:记录每个服务的信息
  • 配置中心:统一管理服务集群的配置信息
  • 服务网关:用于处理请求,负载均衡
  • 分布式缓存:用于缓解数据库高并发
  • ...

单体架构 与 分布式架构

单体架构:将所有业务功能集中在一个项目钟开发,达成一个包部署。

优点:

  • 架构简单
  • 部署成本低

缺点:

  • 耦合度很高
  • 维护困难

分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立的项目开发,成为一个服务。

优点:

  • 降低服务耦合度
  • 有利于服务升级拓展

分布式架构需要考虑的问题:

  • 服务拆分的颗粒度如何?
  • 服务集群如何维护?
  • 服务之间如何实现远程调度?
  • 服务健康状态如何感知?

spring cloud 和 spring boot 的版本对应

在创建 spring cloud 项目时,使用的 spring boot 版本必须与 spring cloud 对应

在 spring cloud 的官方文档中,https://spring.io/projects/spring-cloud#learn,选择对应版本的 Reference Doc,进入文档,在首页就会显示当前 spring cloud 版本和对应的 spring boot 版本

如:

Release Train Version: 2025.0.0

Supported Boot Version: 3.5.0

spring cloud 相关框架

  • maven: 自动化构建工具
  • spring boot: 每一个服务的最小运行单元
  • eureka/nacos: 服务注册中心
  • ribbon/feign: 服务调用框架
  • ...