选型

Spring Cloud

你可能会说

老板说我们要微服务,于是有人提议先上 Spring Cloud 全家桶。

Spring Boot 之上的微服务治理工具箱把服务注册发现、配置中心、网关、负载均衡、熔断限流、链路追踪这些「多个服务之间的问题」做成组件。只有真的拆成多个服务之后,它才有意义。
也常被叫作SpringCloud微服务
先问一句真的要拆微服务?
默认先问单体够不够→擅长注册/网关/熔断→别用三五人硬上
成熟度试验

什么时候选它

  • 已经拆成多个服务,需要统一注册发现和调用
  • 多环境配置集中管理、动态刷新
  • 需要统一入口(网关)、鉴权、限流
  • 用熔断降级和链路追踪兜住跨服务故障

什么时候别选

  • 还是单体,或只有两三个服务:拆分和治理的成本大于收益
  • 团队没有运维和排障能力,组件越多故障面越大
  • 平台团队已用 Kubernetes 提供发现和网关,避免重复建设
容易混在一起 · 怎么分
Spring Cloud≠Spring Boot

Boot 管单个服务的启动和装配,Cloud 管多个服务之间的协作与治理。

Spring Cloud≠Kubernetes

k8s 提供调度、服务发现和部分网关能力;Spring Cloud 更偏应用侧的熔断、配置和调用治理,两者有重叠。

微服务≠分布式

拆服务的前提是业务边界清晰;拆错了只是把单体复杂度换成网络复杂度。

Q面试会问什么

  • 问:核心组件有哪些?
    答:注册发现(Nacos / Eureka)、配置中心、网关(Gateway)、声明式调用(OpenFeign)、熔断限流(Sentinel / Resilience4j)、链路追踪。
  • 问:服务雪崩怎么防?
    答:超时 + 重试上限 + 熔断 + 降级 + 隔离(线程池 / 信号量),入口再做限流。
  • 问:它和 k8s 什么关系?
    答:k8s 管调度和基础设施,Spring Cloud 管应用间调用与治理;能力有重叠,要避免重复建设。
延伸阅读 · 权威出处