事故模式

下游抖动时,上游大量重试,导致下游雪上加霜,最终全链路崩溃。表面看是“下游慢”,本质是“重试风暴”。

核心思路:重试预算

  • 对每个服务设定单位时间最大重试量。
  • 预算耗尽后只允许失败快返,不再重试。
  • 将预算按调用优先级分层。

参数实践

  1. 请求总超时必须小于上游超时预算。
  2. 单次重试间隔采用指数退避 + 抖动。
  3. 只对幂等请求开启自动重试。

指标面

  • retry_attempts_total
  • retry_budget_remaining
  • upstream_timeout_rate
  • outlier_ejection_count

小结

超时、重试、熔断必须联动配置。没有预算约束的重试机制,最终一定把局部故障放大成系统性故障。