跳转至

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、健康检查和流量入口。是否继续使用外部注册/配置中心取决于应用能力和迁移阶段;若两套机制并存,要明确权威来源、注册/注销流程和故障行为,避免健康状态冲突。

微服务通用原理参见 微服务架构,Spring Boot 运行观测参见 日志与可观测性