Skip to content

Spring Cloud 由什么组成? ​

  • 标签:Spring Cloud、微服务、后端

🏛 业务架构师 ​

Spring Cloud(2026 现状)的组成按治理职能分六块讲——每块都是一类业务痛点的答案:

  1. 服务注册与发现:Spring Cloud Netflix Eureka(停更维护)→ Nacos Discovery(国内主流)、Consul、Zookeeper、etcd——解决"服务在哪、实例是否健康";

  2. 配置管理:Nacos Config(主流)、Spring Cloud Config(官方,配 Bus 做动态推送,已边缘化)、Consul KV——解决"配置集中管理与秒级变更";

  3. 服务调用与负载均衡:OpenFeign(声明式 HTTP 客户端)+ Spring Cloud LoadBalancer(Ribbon 退役后的接棒者);与 Dubbo 3 的融合(Triple 协议 + 应用级服务发现)是高性能场景的新选项——解决"怎么标准地调、流量怎么分";

  4. 服务容错:Sentinel(国内默认:限流/熔断/热点防护/系统自适应保护)、Resilience4j(官方推荐 Hystrix 替代品,轻量函数式)——解决"故障不扩散";

  5. 网关:Spring Cloud Gateway(WebFlux 响应式,Zuul 退役)——统一入口、路由、鉴权、灰度、限流前置;

  6. 可观测与事务:Micrometer Tracing(链路追踪,取代 Sleuth)+ Seata(分布式事务,Spring Cloud Alibaba 体系)。

我的版本演进视角:从"Netflix 套件(Eureka/Ribbon/Hystrix/Zuol)"到"Alibaba 系(Nacos/Sentinel/Seata)+ 官方组件(Gateway/LoadBalancer/Micrometer)"是明确的换代主线;同时 K8s 正在吃掉部分职能(服务发现、健康检查、灰度)——今天的架构题不是"用哪些组件",而是"应用层治理和平台层能力怎么分工"。

🏗 系统架构师 ​

按治理职能组织组件清单(比背名字有价值):

  • 服务发现与配置:Spring Cloud Alibaba Nacos Discovery / Nacos Config(或 Consul、Zookeeper;Eureka 遗留);
  • 服务调用:OpenFeign(声明式 HTTP)加 Spring Cloud LoadBalancer(客户端 LB,Ribbon 退役后的官方替代);
  • 网关:Spring Cloud Gateway;
  • 流量防护:Sentinel 或 Resilience4j(限流、熔断、降级);
  • 分布式事务:Seata;
  • 消息:Spring Cloud Bus、Spring Cloud Stream(MQ 抽象);
  • 可观测:Micrometer Tracing 加 OpenTelemetry。

架构视角的裁剪原则:组件清单不等于都要上。我按「流量路径」裁剪:入口(Gateway)→ 发现与调用(Nacos 加 Feign 加 LB)是主干;容错(Sentinel)按服务重要性分级接入;事务与消息按业务场景点状引入。

2026 趋势是「薄 Spring Cloud」:注册发现与 LB 被 K8s 和 mesh 吸收,应用侧保留的是调用契约与容错语义。答题点出「哪些职能正在下沉」,比背组件版本号高一个层级。

💻 全栈开发专家 ​

按子项目组织(比按功能罗列更能体现看过结构):

  • spring-cloud-commons:抽象层——DiscoveryClient、LoadBalancer 接口契约,让 Nacos/Consul/K8s 实现可互换
  • spring-cloud-netflix:Eureka/Ribbon/Hystrix/Zuul——已停止维护,存量专用
  • spring-cloud-alibaba:Nacos(注册+配置)、Sentinel(流控熔断)、Seata(分布式事务)——国内主流组合
  • spring-cloud-gateway:API 网关(WebFlux 基座)
  • spring-cloud-openfeign:声明式调用
  • spring-cloud-loadbalancer:LB 默认实现(替 Ribbon)
  • spring-cloud-config + bus:配置中心与广播刷新
  • spring-cloud-circuitbreaker:熔断抽象(下接 Resilience4j/Sentinel)
  • spring-cloud-kubernetes:K8s 原生集成
  • spring-cloud-stream / contract:消息抽象与契约测试
  • 观测:旧 Sleuth → micrometer-tracing

版本约定:release train 命名(2023.0.x 代号 Leyton),与 Boot 版本严格对应,统一用 spring-cloud-dependencies BOM 管理——答组成顺带提版本管理是实操味道。