核心区别:
spring Boot 是用于快速构建单个、可独立运城的Spring 应用的工具;
spring Cloud 是基于Spring Boot 构建的用于协调和管理多个微服务(即多个Spring Boot 应用)的微服务生态套件。
分点详细对比
| 维度 | Spring Boot | Spring Cloud |
|---|---|---|
| 核心定位 | 应用开发框架 | 微服务治理框架集 |
| 主要目标 | 简化单个Spring 应用的配置和开发,实现"开箱即用 | 解决分布式系统(微服务架构),如服务发现、配置管理等 |
| 作用范围 | 单个微服务内部。关注如何把这个服务做得健壮、易开发 | 多个微服务只见。关注服务如何被发现、调用 、监控和容错。 |
| 关键功能 | 自动配置、起步依赖、内嵌 Web服务器、Actuator监控端点。 | 服务发现与注册、客户端负载均衡、分布式配置、Api网关、熔断器、分布式链路追踪等。 |
| 依赖关系 | 可以独立使用,创建任何Spring 应用(不一定是微服务) | 强依赖于Spring Boot。它的每个组件通常都是一个Spring Boot 应用或基于Boot的库。 |
| 类比 | 制作一块乐高积木(让积木本身坚固、标准) | 提供连接器、图纸和规则,将很多积木组装成一个宏伟的模型。 |
更深入的理解:
1、Spring Boot : 微服务的基础单元
在微服务架构中,我们通常会使用Spring Boot 来开发和打包每一个独立的微服务。因为他能快速生成一个Servlet容器(如Tomcat)的JAR 包,这个"单体"应用可以独立运行,这正好符合微服务"独立部署的核心要求"。所以。Spring Boot 是构建单个微服务的首选框架。
2、Spring Cloud:微服务系统的粘合剂和治理工具
当系统被拆分成多个 Boot服务后,会产生一些列新问题:服务只见如何互相找到?(服务发现/注册中心 如 Eureka/nacos)调用失败怎么办?(熔断器/Hystrix/Sentinel)配置如何统一管理?(配置中心 ,如config/Nacos)这些是Spring Cloud 要解决的。它提供了一套标准模式和工具集,将一系列成熟的分布式服务治理方案(如Netflix Oss、Alibaba组件)与Spring Boot 进行了优雅的集成。
Spring cloud 都有哪些组件,每个组件的作用
1、服务注册与发现
Eureka
作用 :服务注册中心,负责服务的注册与发现
功能 :服务提供者启动时向Eureka 注册,消费者通过Eureka获取服务列表,实现动态服务调用。
替代组件:Nacos、consul、Zookeeper
Nacos
作用 :集服务注册、配置管理于一体。
特点:只吃动态配置更新、服务健康检测,适用于云原生场景。
2、服务调用与负载均衡
Ribbon
作用 :客户端负载均衡器,在服务调用时自动选择可用服务实例。
集成:通常与RestTemplate 或 OpenFeign 配合使用。
OpenFeign
作用 :声明式的Http 客户端,通过接口注解简化服务调用。
特点: 整合Ribbon 实现负载均衡,支持熔断降级。
3、服务熔断与降级
Hystrix
作用 :实现熔断、降级、资源隔离,防止服务雪崩。
功能 :当服务调用失败率超过阀值时熔断,快速失败或执行降级逻辑。
替代组件:Sentinel、Resilience4j
Sentinel
作用 :面向云原生的流量控制、熔断降级组件。
特点:支持实时监控、规则动态配置,与Spring CLoud 生态集成较好。
4、服务网关
Spring Cloud Gateway
作用 :Api 网关,统一路由,过滤、鉴权等。
特点 : 基于WebFlux 响应式编程,支持动态路由、限流、熔断。
替代组件:Zuul(已进入维护模式)
5、分布式配置管理
Spring Cloud Config
作用 :集中化管理微服务配置,支持动态刷新。
缺点 :需配合消息总线(如BUs)实现批量刷新,配置存储在Git/SVN
替代方案:Nacos Config、Apollo
6、 消息驱动
Spring Cloud Stream
作用 :简化消息中间件(如kafka、RabbitMQ)的使用。
特点:通过Binder 抽象屏蔽底层中间件差异,实现时间驱动架构。
7、分布式链路追踪
Spring Cloud Sleuth
作用 :为微服务调用生成分布式追踪ID(TraceId、SpanId),用于链路分析。
搭配:通常与zipkin 集成,可视化调用链路。
ZipKin
作用 :
收集和展示分布式系统的调用链路数据,帮助定位性能瓶颈。
8、消息总线
Spring Cloud BUs
作用 :通过消息代理(如Ribbon、Kafka)广播配置更新事件,实现配置动态刷新。
典型场景:配合Config 实现批量服务配置更新。
9、安全控制
Spring cloud Security
作用 :基于OAuth2 和JWT 提供微服务安全架构。
功能:统一认证授权、资源服务器保护。
10、分布式事务
Seata
作用 :高性能分布式事务解决方案,支持AT、TCC 等模式。
集成:Spring Cloud Alibaba 生态的核心组件之一。
11、其他重要组件
Spring Cloud Alibaba
定位 :为Spring Cloud 提供阿里云生态组件。
包含 :Nacos(注册/配置)、Sentinel(流量控制)、Seata(分布式事务)等。
Spring Cloud Kubernetes
作用: 将Spring Cloud 与 Kubernetes集成,利用K8s的服务发现、配置管理等能力。