课程 302 / 365
83%
正文已完成
L302为外部 API 写限流与重试策略
交付超时、并发、错误分类、退避、幂等与熔断组成的调用契约。
外部 API 不在你的控制内,但调用行为在。一个完整策略要限制自己给对方的压力,也要限制故障给自己的等待是超时、并发、重试、熔断和降级共同构成边界。
能为一项真实外部调用完成防拥塞、可停止且可观测的可靠性策略。
核心概念
先把关键判断说清楚
超时给等待设上限
连接与整体请求应有独立上限,不能让一个外部服务无限占住工作线程。
熔断阻止持续打击
近期失败率持续超过阈值时暂停新调用,短暂探测恢复,而不是让每个请求都走完整失败路径。
调用策略需要信号
记录尝试次数、错误类别、退避时间、熔断状态和最终结果,才能判断策略是否真的改善成功率。
案例拆解
地址解析服务的保护契约
下单依赖第三方地址解析,偶发慢响应使整个接口堆积,旧代码对所有错误立即重试三次。
- 01
连接超时 1 秒、总超时 3 秒,全局并发不超过 20。
- 02
仅对 429、503 和连接超时按 0.5、1.5 秒退避重试,使用地址哈希作为幂等缓存键。
- 03
一分钟失败率超过 50% 开启 30 秒熔断,返回人工确认地址的降级流程。
案例结果
外部故障不再耗尽下单线程,用户仍有明确的继续路径。
提交前练习
现在轮到你
为一个实际外部 API 完成可靠调用契约。
内容会自动保存在当前设备
查看参考答案与评分标准
参考答案
模型 API是连接 2 秒、总 25 秒、并发 12;429/503 最多重试两次并遵守 Retry-After,内容错误不重试;2 分钟失败率>40% 熔断 60 秒后单请求探测;降级为保存草稿并提示稍后继续。
评分标准
- 等待与并发都有上限
- 重试矩阵区分错误与幂等
- 熔断后存在可用降级路径
本课收口 · 学习证据
完成,不等于随手打一个勾。
确认阅读、保存练习,再用 30 秒检查和一句话总结留下真实学习证据。
02完成本课练习0 / 4 项必填内容已填写
03通过理解检查约 30 秒
你现在更接近哪一种状态?
完成上面三项后,才能把本课记为已验证。
资料来源
继续核对与延伸阅读
本课内容最近更新于 。
- Monitoring Distributed Systems↗reference · 核对日期 2026-08-23
- OpenTelemetry Signals↗official-docs · 核对日期 2026-08-23
- NIST AI Risk Management Framework↗standard · 核对日期 2026-08-23