选型指南 架构设计 含可复制代码

把重试做对:什么时候该重试、什么时候该放弃

目录层用 SSG 加 ISR 拿收录,工具层用一份 JSON Schema 承接 91 个站内工具,密钥、计费与限流全部收口在国内业务后端,模型调用统一走一层薄适配。这篇把我们真实的目录结构、Schema 字段定义、路由闸门、预扣结算伪代码和合规清单完整摊开。

陈
陈默架构组
2026-09-28 · 14 分钟阅读 · 8,432 次浏览

重试成本必须单列,否则会被平均进总成本里看不见。

重试既是"稳定手段",也是"成本放大器"

重试能救回瞬时故障 ✔,但也会放大成本与延迟 ✗,甚至把上游彻底压垮 ✗(重试风暴 ✔)。

所以"该不该重试"要靠规则 ✔,而不是"失败就再来一次" ✗。

一、先分清四类失败

| 类型 | 例子 | 该不该重试 |

|---|---|---|

| 瞬时故障 | 连接重置、5xx、超时 | 该(退避重试 ✔) |

| 限流 | 429 / 配额超限 | 该(按建议等待,别硬顶 ✔) |

| 参数错误 | 400、schema 不符 | 不该(重试还是错 ✔) |

| 业务拒绝 | 权限不足、内容不合规 | 不该(重试是骚扰 ✔) |

分不清这四类,重试就是赌博 ✗。

二、重试的三条硬规则

1. 指数退避 + 抖动(1s → 2s → 4s × 随机抖动 ✔)—— 避免所有客户端同时重试 ✔;

2. 上限要硬(次数 ≤ 2~3、总时长 ≤ 10~15s ✔)—— 超过就交给降级链 ✔;

3. 只在幂等操作上重试 ✔(写操作要么幂等,要么先补偿再重试 ✔ —— 见接线那篇 ✔)。

三、绝对不要重试的三种情况

· 参数类错误(错误已明确 ✔);

· 已经超过总预算(成本或时间 ✔);

· 上游整体故障(此时重试只会加重拥塞 ✔)→ 应该走降级/熔断 ✔。

四、重试要可观测(最容易被忽略)

· 重试次数与成功率(重试后成功占比 ✔ —— 很低说明重试没意义 ✔);

· 重试带来的额外成本占比 ✔(常占 10%~30% ✔ —— 见成本可视化那篇 ✔);

· 重试集中度(是否集中在某个上游/某类请求 ✔)。

要点:重试成本必须单列 ✗,否则它会被平均进总成本里看不见 ✔。

五、一个务实配置(可直接抄)

```

网络/5xx:重试 2 次,退避 1s/3s + 抖动,总上限 10s

限流(429):按 Retry-After 等待,最多 1 次

4xx 参数类:不重试,直接回错(带可读原因 ✔)

写操作:默认不重试;幂等写可重试 1 次,且用幂等键 ✔

熔断:错误率 > 50% 且持续 30s → 熔断 60s,半开后放 10% 探测

```

一条判据

> 你的重试额外成本占总成本多少 ✔?说不出来,说明重试既没被观测、也没被控制 ✗。

本文由云枢 AI导航整理,内容以官方来源为准。

相关文章

顺序阅读

← 上一篇:AI 功能的用户教育:怎么让用户用对
下一篇:检索里的版本与变更:别让旧版和新版混在一起 →

第 88 / 171 篇

术语速查 · 本页出现的 12 个词展开看中文名与一句话解释,点术语看完整条目
  • token词元:模型处理文本的最小单位,中文约 1–2 个汉字;计费与上下文长度都按它算。
  • 转写 / 字幕Transcription:把音视频人声逐句变成带时间戳的文字稿,便于做字幕与章节切分。
  • SSE服务器发送事件:服务器通过长连接持续推送增量文本,是对白逐字出现的常见实现。
  • API应用编程接口:程序之间约定的调用方式;站内工具由服务端调用,浏览器里不出现密钥。
  • CDN内容分发网络:把静态资源缓存到离用户更近的节点,缩短加载时间。
  • 缓存Cache:把结果暂存复用,复用得越多平均耗时越低;需要约定过期与刷新策略。
  • 限流Rate Limit:限制单位时间内的请求次数,防止单用户或异常流量打满服务端。
  • SSG静态站点生成:构建阶段就生成 HTML,访问时直接返回,不必每次请求都渲染。
  • ISR增量静态再生:先返回静态页,再在后台按需重新生成,兼顾速度与更新时效。
  • 灰度发布Canary Release:先让一小部分用户用新版本,确认无误再放量,出问题的爆炸半径最小。
  • 提示词Prompt:交给模型的指令文本;写清角色、任务、输入与输出格式比反复试更省。
  • 积分Credits:站内计费单位:按工具单价预扣,调用失败自动退还;单价以定价页为准。

完整解释与站内出现处见 AI 术语表(40 条)。