你可能会说:
- “有人写脚本疯狂调用我的接口,怎么挡?”
- “AI 接口提示"请求太频繁",这是谁在限制?”
它是什么
限流按某个维度计数:每个账号、每个 IP、全站合计,在一个时间窗口里超过上限,就拒绝多出来的请求。维度选得不对,就挡不住真正的问题。
被限流时,标准做法是返回状态码 429,并告诉对方多久之后可以重试。这样监控能看见,调用方也知道该等一等,而不是当成普通错误。
检查次数和记下这一次,最好在一个不可分割的步骤里完成;分成两步做,同时涌进来的几个请求可能都通过检查。
打个比方
像银行柜台的叫号:一个人一次只办一件事,想插队连办十件,得回去重新取号。
在这个网站里
兄弟项目 E2E Review 的导师限制每个账号每分钟 6 条。超过时,页面上显示"问得太快了,稍等几秒再发",但接口返回的状态码是 200,错误藏在流式输出的内容里,监控看不见(第 14 课)。
容易搞混的地方
常见误解
按账号限流,就能防住滥用
正确理解
如果注册不设限,一个人可以变成很多个账号。限流维度要覆盖到 IP 和全站总量。
你可以这样告诉 AI
复制下面这段,贴给你的 AI
这个接口按什么维度限流(账号、IP、全站)?上限和时间窗口是多少?超限时返回什么状态码、有没有告诉对方多久后重试?"检查次数"和"记下这一次"是在同一个原子操作里完成的吗?
接下来去哪
先知道
- 账号与鉴权——先确认"你是谁"(认证),再决定"你能做什么"(授权)。两件事,都要在后端做。
接着看
- 额度——一段时间里总共能用多少:每人每天多少次、全站每天花多少钱。用完就停,等下一个周期。
在这些课里出现
相关的真实事故