一个共享出口 IP 可能代表整个企业,单个用户也可能同时使用多个客户端。限流维度选择不当,会误伤正常业务或无法限制真正的高负载调用。应从资源消耗和业务公平性出发设计。
区分防滥用与容量保护
登录尝试、普通查询和批量导出需要不同规则。IP 可以提供部分来源信息,但不应被当成稳定用户身份。对已认证接口,可结合租户、用户或操作类型设计配额,并处理未认证流量。
单实例限制不等于全站配额
多个副本各自维护计数时,总体允许量可能随副本数变化。方案应说明限制作用在哪一层、是否需要跨实例协调,以及协调设施不可用时如何处理。不要让扩容悄悄改变对客户承诺的额度。
拒绝结果也属于接口契约
调用方需要知道请求被限制,是否允许稍后重试。对昂贵任务也可以考虑排队与配额,但应提供状态和等待上限。限流不能替代授权,更不能允许用户换标识绕过业务权限。
验收公平性与峰值行为
测试同一租户多用户、多个租户共享 IP 和副本变化等情况。检查正常业务是否受影响,以及拒绝是否减少了目标资源压力。规则应可观测并有调整记录。
常见问题:阈值可以直接按服务器 CPU 设置吗?
不宜单独依据 CPU。还需要结合数据库、外部依赖、请求成本和业务峰值进行验证。
技术参考:微软:ASP.NET Core 限流。具体接口与配置请结合使用版本核对。
将评估落实到你的系统
如果内部团队需要把这些约定落到可运行的工程中,可以通过微服务基础架构建设沟通接口、公共能力与交接范围,先以一个业务场景验证方案。