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 管应用间调用与治理;能力有重叠,要避免重复建设。
延伸阅读 · 权威出处