限流应对与优雅降级

部署与成本进阶6讲解 2

429 是你超了配额,529 是上游过载 —— 两者的正确反应不同。指数退避带抖动、尊重 retry-after、熔断后 fallback 到备用模型或降级功能、排队降级而不是直接报错;止血优先,先保核心链路再谈体验。

也叫:限流 · 429 · 529 · 指数退避 · fallback · 熔断 · 优雅降级 · retry-after

二、降级:429 不等于 529出自 T6-3

本节最锋利、也最容易翻车的一刀:

状态码 含义 正确动作
429 超限了 retry-after 指数退避 + 随机抖动,同厂商重试
529 上游过载 重试无用甚至加重雪崩,正确动作是切 fallback
403 / 413 配额耗尽 / 请求过大 不可重试,降级、拒绝或换大窗口模型
504 处理超时 官方建议改用流式或批处理

把 429 和 529 一律当限流重试,是典型的没做过生产。 叠加"失败请求也消耗配额",盲目重试是把自己往雪崩里推。官方在批处理场景给的建议反而是主动注入延迟——限额 20 RPM 就给每个请求加 3 到 6 秒,在天花板附近平稳运行。

跨厂商 fallback 的真实成本是三重的,不是"配一行 config":

原文示意
① 缓存归零  跨厂商必然 100% 未命中;即使同厂商跨模型降级,
            也可能因最小可缓存长度跳档(旗舰 512 → 小模型 4096 token),
            让一批 800 token 的 prompt 从 0.1× 掉回 1.0× —— 输入成本涨 10 倍
② 契约破裂  tool schema、tool_choice、结构化输出、流式事件语义都可能不兼容
③ 合规越界  主链路走签了协议的 A 厂商,故障时自动降到 B 厂商
            —— 用户数据在无人察觉时流出了合规边界

fallback 不是配置项,是给降级链单独跑一遍输出契约测试 + 单独过一遍合规评审 + 单独算一遍成本模型。 敏感流量的降级目标只能在同等合规级别内选,宁可返回错误也不跨界降级。

以上节选自T6-3 LLM 网关:限流、降级、缓存与路由的四笔账,读全文能看到前后语境。

延伸阅读

考这个知识点的题1

会连带问到5