AI 网关多租户流量隔离与配额限制落地

日期:2026-08-02

一、项目背景

我们这套 AI 网关一开始是给单个业务团队用的,后来公司里越来越多部门想接——研发要接代码辅助、客服要接智能问答、市场要接内容生成、财务要接单据审核。于是网关变成了多租户共用,问题随之而来:某个部门搞大促,突发流量把全局算力挤占,其他部门的正常业务被拖慢甚至超时;配额全靠"口头约定",谁超用了也没人知道;月底算账,各部门的调用成本混在一起,财务问"这笔钱到底谁花的"没人答得上来。

项目负责人把问题说得很直白:"网关不能变成一个部门把另一个部门挤垮的公地。"我们的目标很明确:多租户之间要隔离、要有边界、要能计量到部门,突发流量可以借但必须能收回来,账单要算得清。

二、落地场景

方案围绕"隔离—配额—借用—计量"四块。隔离块:每个租户(部门/应用)有独立的并发与速率配额,网关在接入层做租户识别与限速,超配额请求被限流而非挤占他人。配额块:按租户设置日/月调用量与并发上限,并支持按业务优先级分级(核心业务配额更宽、保障更硬)。借用块:允许租户在全局有盈余时临时借用额外配额应对突发,但借用受上限约束且全局紧张时优先回收,保证不被某一租户长期霸占。计量块:每次调用按租户维度记录 token、耗时、费用,沉淀成配额使用与账单视图,财务可按部门对账。

三、关键技术挑战与解决思路

第一个挑战是租户隔离与资源争用。隔离不能只靠限速,因为限速是"超了就拒",但突发时拒谁的、保谁的要有优先级。我们用"硬配额 + 优先级保障":核心租户的关键请求走保障通道,即便全局紧张也保留最低带宽;非核心租户的突发超额部分在全局不足时被优先限流。这样隔离不是一刀切,而是有层次的。

第二个挑战是配额限速与突发。纯固定配额会浪费——大部分时间租户用不满,偶发突发却撞上限被拒。我们引入"令牌桶 + 突发额度":日常按平均速率放行,允许在桶有余量时短期突发,突发耗尽后回到基线。配合借用机制,让闲置配额能被临时利用,整体利用率更高。

第三个挑战是借用回收与公平性。借用最怕"借了不还"。我们设计了一个全局回收器:监控各租户实时占用与全局余量,当某租户借用超时被全局紧张触发时,按"借用时长 + 优先级"排序回收,优先级低、借得久的先还。回收是渐进的,避免把借用量直接砍到零引发业务抖动。

第四个挑战是租户级计量账单。计量要在网关层做,因为调用入口统一。每次请求记录租户 ID、模型、token、耗时、费用,写入按租户分区的计量表,并提供聚合视图。关键是"计量不影响主路径性能"——我们异步落库,主调用只做轻量计数,重型账单聚合离线算。

案例片段(已脱敏): 租户隔离与限速:tenant_cfg = {id:"dept_A", hard_quota_qps:50, priority:"core", guarantee:20};令牌桶:if bucket.take(1) then pass else if borrow_available else limit()。借用回收:reclaim_order = sort(tenants, by=[borrow_duration desc, priority asc]); for t in reclaim_order: if global_tight then t.return_borrow(partial=true)。计量记录:meter.record({tenant, model, tokens, cost, ts}); async flush to partition_by(tenant, day)。账单聚合:SELECT tenant, sum(cost) FROM meter WHERE day=$d GROUP BY tenant

四、效果数据

多租户能力上线后(脱敏示意):租户间隔离度(用"单租户突发对其他租户 P99 影响"衡量)从原来的"显著影响"降到约 5% 以内,即一个部门冲刺不再拖垮其他人。配额超限拦截准确率高,误拦(本在配额内却被拒)低于 1%。突发借用命中率约 88%,大部分突发能借到资源平稳度过,且全局紧张时的回收及时率约 95%,没出现长期霸占。账单准确率(与财务独立抽样对账)约 99.3%,月末分摊从"算不清"变成"部门自助查"。整体网关资源利用率因借用机制提升约 25%,闲置配额被盘活。

一个意外收获:各部门看到自己的用量账单后,开始主动优化 prompt 和调用频次,因为"花的是自己的预算"——治理从自上而下变成了自下而上。

五、可复用经验总结

第一,隔离先配额再限速。只限速没有硬边界,突发时还是公地悲剧;硬配额 + 优先级保障才能把"谁的流量谁负责"落到实处。第二,借用要可回收。闲置配额不该浪费,但借用必须设计回收器和公平性排序,否则变成新的霸占。第三,计量要异步不影响主路径。网关是性能敏感路径,计量落库必须旁路,主调用只做轻计数。第四,账单可视化是最好的治理工具。当各部门能看到自己的消耗,优化动力自然产生,比行政命令有效得多。

给同行一句提醒:多租户网关的命门是"公平"二字。隔离、配额、借用、计量这套组合,本质上是在"利用率"和"公平性"之间找平衡——纯公平会浪费,纯利用会挤垮,我们这套在多个租户场景跑下来,平衡得比较稳。

结语

多租户不是把流量往一个网关里倒,而是给每个租户划好车道、设好红绿灯、装好收费站。当隔离、配额、借用、计量四件套就位,网关才真正从"转发通道"进化成"可运营的资源平台"——这既是技术活,也是治理活。