标准答案
- 全局限流防止服务总容量被突破,接口级限流防止昂贵操作挤占普通请求。
- 租户和用户级配额用于公平分配,多租户系统还要限制批量导出、搜索和写入等高成本动作。
- IP 适合没有可靠身份的入口,但 NAT、代理和攻击者轮换 IP 会造成误伤或绕过。
- 超限响应要返回可理解的 429、重试提示和审计信息,策略应在网关和业务侧互相补充。
题目解析
全局限流保护服务总容量,接口限流保护某类昂贵资源,租户和用户限流解决公平性,IP 限流主要保护匿名入口。每一层应该有清楚的保护对象,否则会出现重复排队和无法解释的 429。
身份可靠性会随请求阶段变化。登录前没有可信用户身份,登录后则应切换到账号、租户和设备维度,IP 只能作为辅助信号,不能替代授权和风控判断。
分层限流要定义优先级和组合顺序,并记录命中的规则、剩余配额和重试时间。这样才能判断是单个租户过载、接口容量不足,还是全局资源已经耗尽。
常见误区
- 误区:登录后仍只按 IP 限流。改正:使用用户和租户维度保护公平性,IP 作为匿名入口和异常信号补充。
- 误区:所有接口使用同一配额。改正:按请求成本、读写类型和资源下游分别设定配额。
- 误区:限流命中只返回一个笼统错误。改正:记录规则、资源和剩余时间,向调用方返回明确的状态和重试边界。