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

多租户下的配额与限流:别让一个用户拖垮所有人

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

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

隔离要做在事前,扩容救不回被挤垮的邻居。

一个用户拖垮所有人

多租户系统里最常见的线上事故:某个租户写了脚本猛刷接口,把模型配额、连接数或带宽吃光,

所有租户一起变慢或失败。这类事故靠"事后扩容"救不回来,必须事前隔离。

四层防护

一、配额(Quota)

按租户限定"一段时间内可用多少"(调用次数、token 数、并发数、存储量)。

要点:

· 配额维度要匹配成本来源(对话类按 token,批量任务按条数或并发);

· 超额行为要明确:拒绝、降级到小模型、还是排队等;

· 配额用量对租户可见(避免"莫名其妙失败")。

二、限流(Rate limit)

控制速率(每秒/每分钟),与配额互补:配额防"总量超标",限流防"瞬时打爆"。

· 用令牌桶/漏桶;给突发留一点余量(例如允许 2 倍瞬时);

· 限流键要分层:租户级 + 全局级(全局兜底,防止"每个租户都不超但总量爆");

· 被限流时返回明确状态与建议等待时间。

三、并发隔离

· 每个租户的并发请求数设上限;

· 关键路径与批量任务分池(批量任务不能占满交互请求的池子);

· 队列要有优先级:交互优先、批量让路。

四、降级与熔断

· 上游变慢时,先降级(小模型/缓存/规则兜底),再考虑拒绝;

· 熔断要有恢复探测(半开状态),不要"断了就一直断";

· 每个降级动作都要记录,便于事后归因。

观测什么

· 按租户的用量分布(找出 Top 5 是不是异常增长);

· 拒绝率/限流触发率(被限流的租户是否知道原因);

· 排队时长的 P95(排队比拒绝更容易被忽略);

· 全局与单租户的成本曲线(成本突然抬升往往是脚本或死循环)。

一个可执行的上线清单

1. 列出每个接口的成本来源,定配额与限流值(宁可先紧,后放开);

2. 加租户级 + 全局级限流;

3. 批量与交互分池,队列设优先级;

4. 降级链写清楚,熔断加半开探测;

5. 把"按租户用量/拒绝率/排队时长"做进看板,并做一次单租户压测验隔离是否真的生效。

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

相关文章

顺序阅读

← 上一篇:把长任务做成可恢复:断点、幂等与进度可见
下一篇:检索结果怎么排序:相似度不是唯一信号 →

第 21 / 171 篇

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

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