• Spring Cloud = 网关 → 发现 → 负载 → 调用 → 容错 → 追踪 → 消息 → 部署 全链路套件。
(从上到下,按请求链路出现顺序)
接入层
• Spring Cloud Gateway / Zuul
作用:统一路由、鉴权、限流、灰度发布服务发现 & 配置中心
• Nacos / Eureka / Consul
作用:实例注册、健康检查、动态配置推送负载均衡
• Ribbon(已维护模式) / Spring Cloud LoadBalancer
作用:本地进程内软负载,把请求均匀打到下游实例服务调用
• OpenFeign
作用:声明式 HTTP 客户端,像调本地方法一样调远程 HTTP容错
• Sentinel / Hystrix
作用:熔断、降级、热点参数限流、系统自适应保护链路追踪
• Sleuth + Zipkin / SkyWalking
作用:跨进程调用链聚合,定位慢 SQL、慢接口消息 & 事件
• Spring Cloud Stream(RocketMQ/Kafka/Rabbit 绑定器)
作用:事件驱动、削峰填谷、最终一致性任务调度
• Spring Cloud Task + Kubernetes Job
作用:一次性任务编排与生命周期管理部署 & 运维
• Spring Boot 2.3+ 的 Buildpacks → 一键镜像
• Spring Cloud Kubernetes → 把 K8s Service/ConfigMap 自动注入到 Spring Environment
最小代码示例
java
@FeignClient("order-service")
public interface OrderClient {
@GetMapping("/orders/{id}")
OrderDTO findById(@PathVariable Long id);
}Gateway 路由示例
yaml
spring:
cloud:
gateway:
routes:
- id: order
uri: lb://order-service
predicates:
- Path=/api/order/**