基于本文回答

播面 播面

文图音视,全方位拆解八股文
0
评论

Spring Cloud 的核心组件有哪些?

知识点图片

Spring Cloud 并不是一个单一的框架,而是一套微服务架构的工具集。它利用 Spring Boot 的开发便利性,巧妙地简化了分布式系统基础设施的开发。

随着技术的发展,Spring Cloud 的核心组件经历了一次“换代”(早期的 Netflix OSS 组件大多已停止维护,被新一代组件替代)。

以下按照微服务架构的核心功能模块,为你梳理 Spring Cloud 的核心组件(包含新老对比):


1. 服务注册与发现 (Service Registry & Discovery)

用于微服务之间的互相发现和统一管理,相当于微服务的“通讯录”。

  • 新一代主流:
    • Nacos (Spring Cloud Alibaba):目前国内最火,兼顾了服务发现和配置管理,支持 AP 和 CP 模式。
    • Consul:HashiCorp 公司开源,基于 Go 语言,支持跨数据中心。
  • 老一代(已淘汰/维护中):
    • Eureka (Netflix):曾经的标配,现已进入维护状态。
    • Zookeeper:传统的大数据或 Dubbo 生态常用,但在 Spring Cloud 中逐渐减少。

2. 服务调用与负载均衡 (Service Invocation & Load Balancing)

用于微服务之间的互相调用,并在多个实例之间分配请求压力。

  • 服务调用:
    • OpenFeign:声明式的 HTTP 客户端。你只需要定义一个接口并加上注解,就可以像调用本地方法一样调用远程微服务。
  • 客户端负载均衡:
    • Spring Cloud LoadBalancer:Spring 官方推出的新一代负载均衡器。
    • 老一代:Ribbon (Netflix),已被 Spring Cloud LoadBalancer 替代。

3. API 网关 (API Gateway)

微服务系统的统一流量入口,负责路由转发、鉴权、限流、跨域等。

  • 新一代主流:
    • Spring Cloud Gateway:Spring 官方基于 Spring WebFlux 开发的响应式网关,性能极高,支持长连接(Websocket)。
  • 老一代:
    • Zuul 1.x (Netflix):基于阻塞 IO,性能较差,已被淘汰。

4. 分布式配置中心 (Distributed Configuration)

集中管理所有微服务的配置文件,支持动态刷新,不需要重启服务就能生效。

  • 新一代主流:
    • Nacos:国内首选,界面友好,原生支持动态刷新。
    • Apollo:携程开源,功能非常强大,适合大型复杂的企业级配置管理。
  • 老一代:
    • Spring Cloud Config:Spring 官方出品,通常结合 Git/SVN 存储配置,但需要配合 Spring Cloud Bus 才能实现动态刷新,架构较重。

5. 熔断、降级与限流 (Circuit Breaking & Fault Tolerance)

防止“雪崩效应”。当某个微服务宕机或响应过慢时,及时熔断,返回默认的降级数据,保护整个系统。

  • 新一代主流:
    • Sentinel (Spring Cloud Alibaba):阿里开源,流控和熔断降级功能极其强大,自带可视化控制台,国内绝对的主流。
    • Resilience4j:Spring 官方推荐的替代方案,轻量级,基于函数式编程。
  • 老一代:
    • Hystrix (Netflix):大名鼎鼎的熔断器祖师爷,已停止维护。

6. 分布式链路追踪 (Distributed Tracing)

微服务互相调用链条可能非常长,链路追踪用于记录一个请求经过了哪些服务,耗时多久,方便定位性能瓶颈和 Bug。

  • 最新方案 (Spring Boot 3.x / Spring Cloud 2022+):
    • Micrometer Tracing:取代了 Sleuth,成为新一代标准。
  • 过渡方案:
    • Spring Cloud Sleuth + Zipkin:Sleuth 负责产生追踪数据,Zipkin 负责收集和展示(Sleuth 在 Spring Boot 3 中已移除)。
  • 第三方极佳替代:
    • SkyWalking:Apache 顶级项目,国人主导,无代码侵入,性能极佳,目前企业级应用最广。

7. 消息驱动与事件总线 (Message-Driven & Event Bus)

  • Spring Cloud Stream:屏蔽了底层消息中间件(RabbitMQ、Kafka、RocketMQ)的差异,提供统一的 API 来发送和接收消息。
  • Spring Cloud Bus:事件总线,通常配合 Spring Cloud Config 使用,通过消息中间件广播配置更改的事件,让所有微服务实例同步更新配置。

💡 总结:新老组件替换对比表(面试/选型必看)

功能模块 老一代组件 (Netflix OSS为主) 新一代推荐组件 (Spring/Alibaba)
服务注册与发现 Eureka Nacos / Consul
客户端负载均衡 Ribbon Spring Cloud LoadBalancer
声明式服务调用 Feign OpenFeign
API 网关 Zuul Spring Cloud Gateway
分布式配置中心 Spring Cloud Config Nacos / Apollo
熔断限流降级 Hystrix Sentinel / Resilience4j
分布式链路追踪 Sleuth + Zipkin Micrometer Tracing / SkyWalking

技术选型建议:
目前在中国国内开发微服务,最主流、最受欢迎的组合是 Spring Cloud Alibaba 体系,即:
Spring Boot + Nacos (注册中心/配置中心) + OpenFeign (调用) + Spring Cloud Gateway (网关) + Sentinel (限流熔断) + SkyWalking (链路追踪)

00:00
00:00