Skip to content

1. 定位与目标

Spring Boot
简化单体应用开发:通过自动配置、内嵌服务器和 Starter 依赖,快速构建独立运行的 Spring 应用(单体或简单微服务)。
核心功能:依赖管理、简化配置、快速启动。

Spring Cloud
构建分布式系统:专注于微服务架构的治理和协调,解决分布式系统中的复杂问题(如服务发现、配置中心、熔断器等)。
核心功能:分布式系统基础设施(如服务注册、网关、链路追踪)。


2. 核心区别

特性Spring BootSpring Cloud
适用场景单体应用、简单微服务复杂的分布式系统(微服务集群)
核心目标简化开发、快速启动解决分布式系统的治理问题(如容错、配置同步等)
依赖关系基于 Spring Framework基于 Spring Boot,整合 Netflix、Alibaba 等生态
典型组件Starter 依赖、ActuatorEureka(服务注册)、Zuul(网关)、Hystrix(熔断)
配置管理application.properties 文件集中式配置(如 Spring Cloud Config、Nacos)
服务通信需手动实现 REST 或 Feign提供 OpenFeign 等声明式客户端工具
部署方式内嵌服务器(JAR 包直接运行)依赖服务注册中心、配置中心等分布式组件

3. 典型使用场景

Spring Boot 场景

• 开发一个独立的用户管理系统(单体应用)。
• 快速构建一个提供 REST API 的简单服务。
• 需要内嵌 Tomcat、自动配置数据源的场景。

Spring Cloud 场景

• 构建电商平台,拆分成订单服务、库存服务、支付服务等微服务。
• 需要统一管理所有微服务的配置(如数据库地址、密钥)。
• 实现服务之间的负载均衡、熔断降级(防止雪崩效应)。


4. 核心组件对比

Spring Boot 核心组件

spring-boot-starter-*:简化依赖管理(如 spring-boot-starter-web 包含 Web 开发所需依赖)。
Spring Boot Actuator:提供应用监控和管理端点(如健康检查、指标收集)。
• 内嵌服务器(Tomcat/Jetty)。

Spring Cloud 核心组件

服务注册与发现:Eureka、Nacos、Consul。
服务调用:OpenFeign(声明式 REST 客户端)、Ribbon(负载均衡)。
熔断与限流:Hystrix、Sentinel。
配置中心:Spring Cloud Config、Nacos。
API 网关:Spring Cloud Gateway、Zuul。
分布式追踪:Sleuth + Zipkin。


5. 两者关系

Spring Cloud 基于 Spring Boot:Spring Cloud 的每个微服务模块都是一个独立的 Spring Boot 应用。
互补关系
• Spring Boot 负责 单个服务 的快速开发和运行。
• Spring Cloud 负责 多个服务 之间的协调、治理和通信。


6. 总结

Spring Boot开发工具,用于快速构建单个应用。
Spring Cloud分布式系统框架,用于管理微服务集群的复杂性。
实际开发中
• 用 Spring Boot 开发每个独立的微服务。
• 用 Spring Cloud 整合这些微服务,提供分布式能力(如注册中心、熔断器等)。

示例架构

[微服务A(Spring Boot)] → [Eureka(服务注册)]  
[微服务B(Spring Boot)] → [Spring Cloud Gateway(路由)]  
[微服务C(Spring Boot)] → [Hystrix(熔断)]

✨ 网站运行时间: 3年11月15天 ❤️ 道阻且长,行则将至 - 微信号: heikedreamer