Spring Cloud 介绍
微服务是分布式架构的一种,所谓分布式就是把服务进行拆分,每个服务独立运行,又可以相互调用。在这个或称中会出现各种各样的问题。
而 spring cloud 是一个开源的微服务框架,它解决了服务拆分时的服务治理问题。
相关网址
- spring cloud: https://spring.io/projects/spring-cloud
- spring boot: https://spring.io/projects/spring-boot
微服务
传统开发中使用的单体架构,将所有的业务全部写在一起,随着业务愈来愈复杂,代码耦合度也越来越大,程序愈发臃肿,这使得后期维护的成本也大大增加。
而微服务是对服务进行拆分后,每个服务独立运行,在一个项目中由多个服务构成服务集群。
这时会遇到一些问题,如 一个功能往往需要多个服务共同完成,因此服务之间也需要进行通信,而当功能越来越多,服务得关系也就越来越复杂。
单靠人力维护十分困难,因此微服务会有一个 注册中心,用来记录每一个服务的 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.0spring cloud 相关框架
- maven: 自动化构建工具
- spring boot: 每一个服务的最小运行单元
- eureka/nacos: 服务注册中心
- ribbon/feign: 服务调用框架
- ...