跳到主要内容

Spring Cloud 知识体系概览

什么是 Spring Cloud?

Spring Cloud 是基于 Spring Boot 的微服务架构解决方案,提供了一整套工具来解决分布式系统中的常见问题:服务注册与发现、负载均衡、熔断降级、配置中心、链路追踪、API 网关等。

当系统从单体架构拆分为微服务后,会产生一系列新的挑战——服务之间如何找到彼此?某个服务挂了怎么办?配置分散在几十个服务中怎么管理?Spring Cloud 就是用来解决这些问题的"工具箱"。


核心组件

注册中心——服务的"通讯录"

在微服务架构中,服务实例可能有几十上百个,且动态伸缩。注册中心让每个服务启动时自动注册自己的地址,调用方从注册中心查询目标服务的地址列表。

注册中心一致性模型说明
NacosAP/CP 可切换阿里开源,同时支持注册中心和配置中心
EurekaAPNetflix 开源,Spring Cloud 最早集成的注册中心(已维护模式)
ConsulCPHashiCorp 开源,支持健康检查和 KV 存储
ZooKeeperCPApache 项目,Dubbo 生态常用

API 网关——所有请求的"入口"

API 网关是客户端和微服务之间的中间层,统一处理路由转发、认证鉴权、限流、日志等横切关注点。

Spring Cloud Gateway 是目前 Spring Cloud 生态的官方网关(替代了已维护模式的 Zuul),基于 WebFlux 的响应式编程模型,支持高并发。

熔断与降级——"保险丝"机制

当下游服务不可用时,如果上游不断重试,会导致雪崩效应(一个服务故障导致整条调用链崩溃)。熔断器(Circuit Breaker) 在检测到故障率达到阈值后"断开电路",快速失败并返回兜底结果。

组件来源说明
Sentinel阿里巴巴流量控制 + 熔断降级,国内主流
Resilience4j开源轻量级,Spring Cloud 官方推荐
HystrixNetflix已进入维护模式

配置中心——集中管理所有配置

微服务拆分后,配置分散在几十个服务的 application.yml 中,修改一个数据库地址可能要改十几个服务重新部署。配置中心将配置集中管理,支持动态刷新(不重启就生效)。

Nacos ConfigApollo 是国内最主流的配置中心。

远程调用——服务间的"对话"

微服务之间通过 HTTP 或 RPC 通信。OpenFeign 提供声明式的 HTTP 客户端——像调用本地方法一样调用远程服务:

// 声明式远程调用:像调用本地方法一样调用商品服务
@FeignClient(name = "product-service")
public interface ProductClient {
@GetMapping("/api/products/{id}")
Product getProduct(@PathVariable Long id);
}

链路追踪——"全链路透视"

一个用户请求可能经过网关 → 用户服务 → 订单服务 → 商品服务 → 库存服务,出问题时怎么定位是哪个环节?链路追踪通过给每个请求分配唯一的 TraceId,串联整条调用链。

SkyWalking(国内主流)和 Zipkin 是常用的链路追踪工具,Spring Cloud 通过 Micrometer Tracing 提供标准化的追踪接入。


学习建议

推荐学习路径
  1. 注册中心(Nacos) → 服务发现的基础
  2. 远程调用(OpenFeign) → 服务间通信
  3. API 网关(Gateway) → 统一请求入口
  4. 熔断降级(Sentinel) → 高可用保障
  5. 配置中心(Nacos Config) → 配置集中管理
  6. 链路追踪(SkyWalking) → 分布式调试

相关链接