Spring Cloud 运维组件¶
Spring Cloud 是一组面向分布式应用的 Java 组件和抽象,不是一款必须整体安装的软件。项目实际可能选用 Nacos、Consul、Spring Cloud Gateway、OpenFeign、Resilience4j、Spring Cloud LoadBalancer 等组合,接收应用时必须确认真实依赖和版本,不能仅凭“用了 Spring Cloud”判断架构。
组件与运行依赖¶
| 能力 | 常见实现 | 运维检查 |
|---|---|---|
| 注册发现 | Nacos、Consul、Kubernetes Service | 注册地址、Namespace/Group、健康和实例上下线 |
| 配置中心 | Nacos Config、Consul KV、Spring Config | 配置作用域、认证、动态刷新和回滚 |
| API Gateway | Spring Cloud Gateway | Route、Predicate、Filter、连接池、超时和限流 |
| 服务调用 | OpenFeign + LoadBalancer | 目标服务名、连接/读取超时、重试和连接池 |
| 容错 | Resilience4j 等 | 熔断窗口、并发隔离、限流和降级指标 |
| 可观测 | Actuator、Micrometer、OpenTelemetry | Metrics 端点、Trace 传播、服务名和版本 |
接收部署前确认¶
Spring Boot / Spring Cloud 版本组合
注册中心与配置中心地址、认证、租户/分组
Gateway 路由和外部入口
每个下游的超时、重试与连接池
动态配置是否需要 refresh、重启或滚动发布
Actuator 暴露范围及安全策略
日志中的 traceId 与服务版本
配置优先级仍受 Spring Boot 外部配置规则影响。注册中心里看到实例不代表业务就绪,还要核对健康检查、实际监听端口和下游调用。
Gateway 排障¶
404 → Route/Predicate、Path 重写、配置是否加载
502/503 → 服务发现、目标实例、连接失败或无健康后端
504/超时 → Gateway 与下游超时、连接池、下游延迟
单实例异常 → 负载均衡、实例版本、配置和节点差异
Gateway 需要监控请求率、状态码、P95/P99、连接池、路由命中、下游耗时和限流。业务逻辑不要大量堆在 Filter 中,否则入口会成为难以发布和排障的新单体。
OpenFeign 与容错¶
调用方必须显式配置连接和读取超时。重试只能用于幂等请求并设置次数、退避和总预算;若 Gateway、Feign 和底层 HTTP Client 同时重试,会把一次请求放大为大量下游流量。
熔断、限流和降级的目标是保护资源,不是隐藏故障。对应状态和计数要导出到 Micrometer,并在 Dashboard、告警和日志中关联。
Kubernetes 中的边界¶
Kubernetes 已提供 Service/DNS、ConfigMap/Secret、健康检查和流量入口。是否继续使用外部注册/配置中心取决于应用能力和迁移阶段;若两套机制并存,要明确权威来源、注册/注销流程和故障行为,避免健康状态冲突。