事故模式
下游抖动时,上游大量重试,导致下游雪上加霜,最终全链路崩溃。表面看是“下游慢”,本质是“重试风暴”。
核心思路:重试预算
- 对每个服务设定单位时间最大重试量。
- 预算耗尽后只允许失败快返,不再重试。
- 将预算按调用优先级分层。
参数实践
- 请求总超时必须小于上游超时预算。
- 单次重试间隔采用指数退避 + 抖动。
- 只对幂等请求开启自动重试。
指标面
retry_attempts_totalretry_budget_remainingupstream_timeout_rateoutlier_ejection_count
小结
超时、重试、熔断必须联动配置。没有预算约束的重试机制,最终一定把局部故障放大成系统性故障。