课程 302 / 365
83%
部署与可靠性·练习·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 秒后单请求探测;降级为保存草稿并提示稍后继续。

评分标准

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

本课收口 · 学习证据

完成,不等于随手打一个勾。

确认阅读、保存练习,再用 30 秒检查和一句话总结留下真实学习证据。

0 / 3
02完成本课练习0 / 4 项必填内容已填写
03通过理解检查约 30 秒
熔断器进入开放状态的核心目的是什么?
你现在更接近哪一种状态?
完成上面三项后,才能把本课记为已验证。

资料来源

继续核对与延伸阅读

本课内容最近更新于