Skip to content

模型网关如何实现超时、重试、熔断和降级?

3 分钟速学卡

30 秒口述: 我会让模型网关统一承接鉴权、能力路由、超时预算、错误分类、有限重试、熔断、降级和调用审计。核心不是“失败就再调一次”,而是先区分限流、瞬时故障、永久错误和结果未知,再按剩余时间与幂等边界决定动作。网关只能统一工程契约,不能假设不同模型的质量、Schema 和安全语义完全等价,必须用 Trace、故障注入和固定任务集验证。

  • 本质: 网关可靠性来自“预算传播 + 错误分类 + 有限恢复 + 故障隔离 + 可验证降级”。
  • 核心机制: 超时是整条链路的截止时间,不是每层独立计时;只有满足错误类型、预算和幂等条件时才重试。
  • 关键判断: 熔断隔离故障,降级改变能力承诺,两者不能混为一谈;用 Trace、对账和故障注入证明恢复策略有效。
  • 项目落地: 故障演练:上游出现限流时,如果客户端、网关和 SDK 三层各重试三次,单个请求可能放大为大量调用。先关闭内层隐式重试、收紧并发与重试预算,再按 request_id → attempt → provider_request_id 定位首次异常。
  • 边界与坑: “超时就重试三次”:没有错误分类、剩余预算和幂等判断,会制造重复扣费与请求风暴;“备用模型能无缝替换”:忽略能力、上下文、结构化输出和安全策略差异。

目录

面试官为什么问

这道题考察你是否理解分布式失败、预算传播、幂等和故障隔离,而不只是会封装多个模型 SDK。高级回答还应说明重试风暴、结果未知和降级质量边界。

小白先看懂

想象机场塔台为飞机分配跑道:某条跑道暂时关闭时,可以等待、换跑道或取消,但不能让所有飞机无限盘旋。塔台对应模型网关,飞机对应请求,剩余燃油对应端到端超时预算,跑道状态对应供应商健康度,备降机场对应降级模型。

回到技术机制,网关要把总预算拆给排队、连接、首字节和完整响应;只对可重试错误执行带抖动的退避,并在连续失败达到阈值后熔断。这个类比没有覆盖模型输出质量差异和扣费结果未知,因此切换供应商后仍需结果校验与对账。

主题图与核心原理

图:教学图片|模型网关如何实现超时、重试、熔断和降级?

替代文本: 围绕“模型网关如何实现超时、重试、熔断和降级?”组织的中文教学图,通过分区、箭头和标签解释核心机制。

模型网关如何实现超时、重试、熔断和降级?教学图片

读图结论: 先分类,再恢复;每次重试都消耗总预算。

这张图片用于建立主题机制的直觉。精确公式、参数、失败分支和事实边界仍以正文与 Mermaid 为准。

图片生成记录: model=gpt-image-2generated=2026-07-15prompt_version=v1reviewed=2026-07-16review_basis=user-confirmed查看生成 Prompt

图:模型网关的预算与故障决策链

替代文本: 请求先计算剩余预算,再按能力和健康度路由;错误分类决定返回、有限重试、熔断或降级,所有分支写入 Trace。

图表加载中…

读图结论: 超时是总预算,重试是有条件的恢复动作,熔断用于隔离故障,降级必须显式降低能力承诺。

核心实现要点是:传播绝对截止时间;建立供应商错误分类表;设置单请求重试次数和全局重试预算;用断路器保护故障域;为非幂等或结果未知请求保留 provider_request_id 进行查询与对账;降级响应携带实际模型、版本和质量边界。

项目和生产视角

故障演练: 上游出现限流时,如果客户端、网关和 SDK 三层各重试三次,单个请求可能放大为大量调用。先关闭内层隐式重试、收紧并发与重试预算,再按 request_id → attempt → provider_request_id 定位首次异常;长期通过统一重试层、熔断、配额和对账修复。

验证至少覆盖正常、限流、连接超时、响应丢失、Schema 不兼容和供应商区域故障。观察任务成功率、P95/P99、重试放大系数、熔断率、降级率和单位成功任务成本。

常见错误回答

  • “超时就重试三次”:没有错误分类、剩余预算和幂等判断,会制造重复扣费与请求风暴。
  • “备用模型能无缝替换”:忽略能力、上下文、结构化输出和安全策略差异。
  • “熔断后服务就可靠”:熔断只隔离故障,还需要容量保护、恢复探测和用户可理解的失败语义。

递进追问

  1. 连接超时、读取超时和端到端截止时间有什么区别?
  2. 如何判断一次模型调用处于“未执行”还是“结果未知”?
  3. 半开状态如何避免大量探测请求同时恢复?
  4. 模型降级时怎样防止结构化输出契约被破坏?
  5. 你会用哪些故障注入证明网关没有重试风暴?

关联阅读

总结

一句话记忆: 网关可靠性来自“预算传播 + 错误分类 + 有限恢复 + 故障隔离 + 可验证降级”。

  • 超时是整条链路的截止时间,不是每层独立计时。
  • 只有满足错误类型、预算和幂等条件时才重试。
  • 熔断隔离故障,降级改变能力承诺,两者不能混为一谈。
  • 用 Trace、对账和故障注入证明恢复策略有效。