目录
[一、Spring Cloud 是什么?](#一、Spring Cloud 是什么?)
[二、为什么微服务需要 Spring Cloud?](#二、为什么微服务需要 Spring Cloud?)
[三、Spring Cloud 的核心能力](#三、Spring Cloud 的核心能力)
[1. 服务注册与发现](#1. 服务注册与发现)
[2. 负载均衡](#2. 负载均衡)
[3. 服务调用](#3. 服务调用)
[4. 熔断与限流](#4. 熔断与限流)
[5. 配置中心](#5. 配置中心)
[6. 网关](#6. 网关)
[7. 链路追踪与监控](#7. 链路追踪与监控)
[四、Spring Cloud 与 Spring Boot 的关系](#四、Spring Cloud 与 Spring Boot 的关系)
[五、Spring Cloud 常见误区](#五、Spring Cloud 常见误区)
[1. Spring Cloud 不是一个具体框架](#1. Spring Cloud 不是一个具体框架)
[2. Spring Cloud ≠ 微服务](#2. Spring Cloud ≠ 微服务)
[3. 不一定非要"全家桶"](#3. 不一定非要“全家桶”)
[六、什么时候适合使用 Spring Cloud?](#六、什么时候适合使用 Spring Cloud?)
在前面的内容中,我们已经了解了微服务是什么 。
当系统被拆分为多个微服务之后,新的问题也随之出现:
- 服务之间如何相互发现?
- 服务地址变化怎么办?
- 请求如何负载均衡?
- 服务出问题如何快速失败?
- 配置如何统一管理?
Spring Cloud,正是为解决这些问题而生的。
一、Spring Cloud 是什么?
Spring Cloud 是一套基于 Spring Boot 的微服务治理框架。
一句话定义:Spring Cloud 为微服务架构提供了一整套基础设施解决方案。
它并不负责业务功能,而是负责服务之间如何协作与治理。
二、为什么微服务需要 Spring Cloud?
微服务拆分之后,系统从「单体复杂」变成了「分布式复杂」。
常见问题包括:
- 服务实例数量动态变化
- 服务调用依赖网络,存在失败风险
- 配置分散,难以维护
- 调用链路难以追踪
Spring Boot 解决了"服务怎么建",Spring Cloud 解决"服务怎么管"。
三、Spring Cloud 的核心能力
1. 服务注册与发现
解决问题:服务之间如何找到彼此?
典型组件:
- Eureka(已进入维护模式)
- Nacos
- Consul
作用:
- 服务启动时注册自己
- 调用方从注册中心获取可用实例
2. 负载均衡
解决问题:同一个服务有多个实例,请求发给谁?
常见方式:
- 客户端负载均衡(如 Spring Cloud LoadBalancer)
3. 服务调用
解决问题:如何优雅地调用其他服务?
方式:
- REST + HTTP
- OpenFeign(声明式 HTTP 客户端)
4. 熔断与限流
解决问题:下游服务不可用,如何避免系统雪崩?
能力包括:
- 熔断
- 限流
- 降级
常见组件:
- Resilience4j
- Sentinel
5. 配置中心
解决问题:多服务配置如何统一管理?
能力:
- 配置集中存储
- 动态刷新
常见组件:
- Nacos Config
- Spring Cloud Config
6. 网关
解决问题:外部请求如何统一入口?
常见功能:
- 路由转发
- 权限校验
- 限流
- 日志
常见组件:
- Spring Cloud Gateway
7. 链路追踪与监控
解决问题:一次请求经过了哪些服务?
常见组件:
- Sleuth
- Zipkin
- Micrometer
四、Spring Cloud 与 Spring Boot 的关系
这是一个非常高频的问题。
| 对比 | Spring Boot | Spring Cloud |
|---|---|---|
| 作用 | 构建微服务 | 治理微服务 |
| 关注点 | 单个服务 | 服务集群 |
| 依赖关系 | 基础 | 依赖 Boot |
Spring Cloud 必须基于 Spring Boot 使用。
五、Spring Cloud 常见误区
1. Spring Cloud 不是一个具体框架
它是:
- 多个子项目的集合
- 一套解决方案
2. Spring Cloud ≠ 微服务
- 微服务是架构思想
- Spring Cloud 是实现工具
3. 不一定非要"全家桶"
实际项目中:
- 按需选择组件
- 不必全部引入
六、什么时候适合使用 Spring Cloud?
适合场景:
- 微服务数量较多
- 需要服务治理能力
- 团队具备分布式经验
不适合:
- 小型项目
- 单体系统
- 团队规模较小
七、总结
可以用一句话概括:Spring Cloud 通过注册中心、配置中心、网关、负载均衡、熔断限流等组件,构建完整的微服务治理体系。
Spring Cloud 是一套为微服务架构提供完整治理能力的生态体系,它解决的是分布式系统中的共性问题。