本章进度 9 / 18
50%
部署与可靠性·练习·18 分钟
正文已完成

为外部 API 写限流与重试策略

交付超时、并发、错误分类、退避、幂等与熔断组成的调用契约。

L302
为什么现在学

现在把“限流重试”用于一次具体操作,检查你能否独立做出并修正结果。

本课会用什么
  • 按本课练习说明准备真实材料
  • 保留练习与复盘记录

外部 API 不在你的控制内,但调用行为在。一个完整策略要限制自己给对方的压力,也要限制故障给自己的等待是超时、并发、重试、熔断和降级共同构成边界。

这一课的结果

能为一项真实外部调用完成防拥塞、可停止且可观测的可靠性策略。

核心概念

先把关键判断说清楚

01

超时给等待设上限

连接与整体请求应有独立上限,不能让一个外部服务无限占住工作线程。

02

熔断阻止持续打击

近期失败率持续超过阈值时暂停新调用,短暂探测恢复,而不是让每个请求都走完整失败路径。

03

调用策略需要信号

记录尝试次数、错误类别、退避时间、熔断状态和最终结果,才能判断策略是否真的改善成功率。

案例拆解

地址解析服务的保护契约

下单依赖第三方地址解析,偶发慢响应使整个接口堆积,旧代码对所有错误立即重试三次。

  1. 01

    连接超时 1 秒、总超时 3 秒,全局并发不超过 20。

  2. 02

    仅对 429、503 和连接超时按 0.5、1.5 秒退避重试,使用地址哈希作为幂等缓存键。

  3. 03

    一分钟失败率超过 50% 开启 30 秒熔断,返回人工确认地址的降级流程。

案例结果

外部故障不再耗尽下单线程,用户仍有明确的继续路径。

提交前练习

现在轮到你

为一个实际外部 API 完成可靠调用契约。

完成本课需要:完成以下内容用于本课收口。

内容会自动保存在当前设备
查看参考答案与评分标准

参考答案

模型 API是连接 2 秒、总 25 秒、并发 12;429/503 最多重试两次并遵守 Retry-After,内容错误不重试;2 分钟失败率>40% 熔断 60 秒后单请求探测;降级为保存草稿并提示稍后继续。

评分标准

  • 等待与并发都有上限
  • 重试矩阵区分错误与幂等
  • 熔断后存在可用降级路径

本课收口 · 学习证据

留下完整学习证据

读完内容、完成练习、通过理解检查并留下 12 字以上总结,才记为已验证。

0 / 4
02完成本课必填练习0 / 4 项必填内容已填写03通过理解检查点此去回答,约 30 秒
04写下 12 字以上总结还差 12 字
熔断器进入开放状态的核心目的是什么?
你现在更接近哪一种状态?
尚有必填项未完成,请补齐后再继续。

资料来源

继续核对与延伸阅读

本课内容最近更新于 。