Skip to content

L04-03 限流与配额:防滥用也防超支 ​

全局中心内容:速率限流防击穿,总量配额防超支——两个维度缺一不可。 全局讲解主线:两类事故 → 三级模型 → 限流算法 → 配额设计 → 降级阶梯 → 编码 → 体验。


P1 · 产出页 ​

中心内容:全局 / 租户 / 用户三级限流 + 日/月额度配额。

  • 讲解技巧
    • 开场两类事故:一次压测把额度用完(速率问题),一个月账单超预算 5 倍(总量问题)。
    • 强调:只做速率限流挡不住第二种。
  • 时长:30s

P2 · 三级模型 ​

中心内容:全局保系统、租户保预算、用户防滥用。

  • 页面内容:三级配置示例

  • 讲解技巧

    • 讲清为什么要三级:只有全局限流的话,一个租户能占满全部额度。
  • 时长:5min


P3 · 限流算法 ​

中心内容:令牌桶(允许突发)vs 固定窗口(简单但边界突刺)。

  • 讲解技巧
    • 推荐令牌桶:AI 场景的请求天然是突发的。
    • 提醒固定窗口的边界问题:59 秒和 01 秒各打满,实际两倍速率。
  • 时长:5min

P4 · Redis + Lua ​

中心内容:原子扣减,避免并发超发。

  • 页面内容:Lua 脚本思路

  • 讲解技巧

    • 强调「先读后写」在并发下必然超发,必须用 Lua 保证原子性。
    • 提醒 Redis 挂了要有降级策略(本地计数或放行)。
  • 时长:6min


P5 · 配额维度 ​

中心内容:按 Token 计费比按次数更公平。

  • 讲解技巧
    • 讲清理由:一次长对话和一次短问答成本差几十倍,按次数限流会被钻空子。
    • 提醒要支持按模型加权(贵模型消耗更多额度)。
  • 时长:5min

P6 · 降级阶梯 ​

中心内容:软限额告警 → 硬限额拒绝 → 降档模型。

  • 讲解技巧
    • 强调中间要有一档「降档」:直接拒绝用户体验很差,降档是更好的过渡。
    • 提醒要提前通知(用到 80% 时提醒)。
  • 时长:5min

P7 · 编码:限流实现 ​

中心内容:网关 Filter 里做三级校验。

  • 讲解技巧
    • 强调校验顺序:先全局(最便宜),再租户,最后用户。
    • 提醒被限流要返回标准 429 并带 Retry-After。
  • 时长:6min

P8 · 用户体验 ​

中心内容:被限流要说清楚为什么、什么时候恢复、找谁申请。

  • 讲解技巧
    • 产品视角:给一个「申请扩容」的入口,否则用户只会来找你。
  • 时长:4min

P9 · 避坑与小结 ​

中心内容:额度要能临时调整,且调整要有审计。

  • 讲解技巧
    • 引出下一节:限流是平台内部的事,服务边界怎么划——04-04。
  • 时长:3min

讲师备忘 ​

项内容
课前必做准备三级配置示例;准备 Lua 脚本
最容易超时处P4 Redis Lua,容易被追问并发细节
学员最常问「集群下怎么限流?」答:Redis 集中计数,单实例误差可接受
现场备用无 Redis → 用本地令牌桶演示算法