课程 301 / 365
82%
正文已完成
L301重试可能修复瞬时故障,也可能放大事故
根据错误类别、幂等性、退避与预算判断一次请求是否应该重试。
重试不是默认善意。网络抖动和临时 503 可能在稍后恢复,但参数错误、权限拒绝和非幂等写入盲目重试只会增加负载或重复副作用。可靠重试必须有分类、退避、抖动和总预算。
能区分可重试与不可重试错误,并识别重试风暴风险。
核心概念
先把关键判断说清楚
错误分类先于次数
超时、429、部分 5xx 可能暂时恢复;400、401 和 Schema 错误通常需要修输入或权限。
指数退避加抖动
逐次拉长等待并加入随机偏移,避免大量客户端在同一时刻同步重试。
幂等保护写操作
付款、发券和发送消息等副作用操作需要幂等键,才能安全应对响应丢失后的重发。
案例拆解
五次立即重试让数据库雪上加霜
数据库过载返回 503,数百个客户端立即连续重试五次,流量瞬间放大。
- 01
只对明确瞬时错误启用重试,认证与参数错误直接失败。
- 02
采用 1、2、4 秒指数退避并加入随机抖动,遵守服务端 Retry-After。
- 03
限制每次用户操作的总重试预算,并在耗尽后降级或转人工。
案例结果
恢复期间额外流量被控制,系统获得喘息时间而不是承受重试风暴。
提交前练习
现在轮到你
为三个不同错误写出是否重试及其依据。
内容会自动保存在当前设备
查看参考答案与评分标准
参考答案
429是按 Retry-After 重试;401是不重试,刷新凭据或失败;连接超时是幂等请求最多重试两次,等待 1±0.2 秒、3±0.5 秒;总时长不超 8 秒,耗尽后返回可追踪错误。
评分标准
- 错误分类基于可恢复性
- 退避避免同步洪峰
- 预算和耗尽动作明确
本课收口 · 学习证据
完成,不等于随手打一个勾。
确认阅读、保存练习,再用 30 秒检查和一句话总结留下真实学习证据。
02完成本课练习0 / 4 项必填内容已填写
03通过理解检查约 30 秒
你现在更接近哪一种状态?
完成上面三项后,才能把本课记为已验证。
资料来源
继续核对与延伸阅读
本课内容最近更新于 。
- Monitoring Distributed Systems↗reference · 核对日期 2026-08-23
- NIST AI Risk Management Framework↗standard · 核对日期 2026-08-23