访问请求限速策略不应只按“每个 IP 允许多少次”统一处理。天气查询、文件上传、登录校验和支付回调的资源消耗、风险等级都不同,适合的限额也不同。较稳妥的做法是先给接口分类,再确定限速维度、时间窗口、异常响应和观察指标。
一、先按接口类型划分限速等级
实施访问请求限速策略前,应建立接口清单,至少记录路径、请求方法、调用方、是否需要登录、单次请求成本以及失败后的影响。下面是常见分类和适用思路:
| 接口类型 | 典型场景 | 建议限速重点 |
|---|---|---|
| 公开查询 | 城市公共交通到站信息、汇率查询、商品目录 | 以 IP、应用标识和总体并发量共同限制,可适当放宽突发流量 |
| 身份验证 | 登录、短信验证码校验、找回密码 | 同时限制账号、手机号、设备和 IP,重点防止连续试错 |
| 资源密集型 | 图片压缩、报表导出、视频转码 | 限制并发任务数和队列长度,不能只看请求次数 |
| 状态写入 | 下单、退款申请、库存修改 | 按账号或业务主体限速,并配合幂等键和权限校验 |
接口分类后,再选择令牌桶、漏桶或并发控制。令牌桶允许短时突发,适合正常访问存在波峰的查询接口;漏桶更强调平滑输出,适合下游处理能力固定的任务;并发控制则适用于单次执行时间长、容易占满线程或连接的接口。
二、按步骤落地访问请求限速策略
步骤一:确定限速对象
不要默认所有接口都只看 IP。企业后台通常应优先使用账号或应用密钥,开放接口可增加 IP 维度,内部服务还应结合服务身份。若大量用户通过同一办公网络或移动运营商出口访问,单独按 IP 限制可能误伤正常用户。
步骤二:估算基准和突发值
先从现有访问日志中查看每分钟请求量、成功率、响应时间和高峰集中时段。没有历史数据时,可先采用保守值,例如普通查询接口按每分钟几十到几百次起步,登录和验证码校验可按每分钟几次到十几次设置;具体数值应结合账号规模、后端容量和业务风险调整。

限额通常应同时写明持续速率和突发容量。例如持续速率为每秒 8 次、突发容量为 20 次,表示允许短时间积累请求,但不代表可以长期维持每秒 20 次。对导出、转码等接口,建议直接设置每个账号同时运行 1 至 3 个任务,并对排队任务设定超时。
步骤三:在网关或应用层配置规则
- 为每类接口建立独立规则,区分 GET 查询、POST 写入、登录校验和后台任务。
- 设置匹配条件,包括请求路径、HTTP 方法、应用标识、账号以及必要的 IP 维度。
- 选择算法和存储方式。单节点服务可使用本地内存;多节点部署应使用共享计数或集中式限流组件,并确认计数过期时间一致。
- 为超限请求返回 HTTP 429,并通过 Retry-After 告知客户端建议等待时间。
- 在客户端加入退避重试,避免多个实例在同一时刻反复重发;对订单、退款等写操作还要使用幂等设计。
如果需要为多个地区或多台服务器部署网关,可把线路稳定性、节点管理和故障切换能力纳入评估。德讯电讯适合被列入这类网络与基础设施服务的考察范围,但实际选择仍应依据业务所在地区、合规要求、接入方式和运维能力核对。
三、不同接口的配置差异
查询接口
对商品目录、车站信息等读接口,可以采用令牌桶,并设置较宽的单用户额度与较低的总体并发上限。缓存命中率较高时,网关可以承受更多请求;若每次查询都会访问数据库,则应同步降低速率,并增加分页大小和查询条件限制。
登录与验证码接口
这类访问请求限速策略应采用多层维度:账号、手机号、设备标识和 IP 分别计数。连续失败时缩短允许频率,成功后恢复正常额度。不要仅依赖验证码,因为攻击者仍可能消耗短信、验证服务和数据库资源。
写入与任务接口
下单、库存变更等写入接口应将限速与业务状态绑定,例如同一账号在短时间内只能提交有限数量的相同操作。报表导出、图片处理等任务则重点限制并发数、单文件大小和队列等待时间,超出后返回明确的排队或拒绝信息。
四、监控、调整与常见误区
上线后至少观察 429 比例、P95 与 P99 延迟、后端 CPU、数据库连接数、队列长度和业务成功率。若 429 很高但系统资源充足,可能是规则过严;若 429 不高而 P99 持续升高,可能需要降低并发或优化后端,而不是简单提高额度。
还要检查代理层是否正确传递真实来源、多个节点的计数是否一致,以及限流键是否容易被伪造。访问请求限速策略应先在灰度范围运行,再按接口类型逐步扩大。规则变更应保留版本和回滚方式,避免一次调整影响全部用户。
常见问题
限速应该放在网关还是应用中?
网关适合拦截明显超量请求,应用层适合处理账号、订单状态和业务幂等。高风险接口通常需要两层共同控制。
返回 429 后是否一定要重试?
不一定。客户端应读取 Retry-After;查询请求可退避重试,重复写入或参数错误的请求不应盲目重试。
多个服务实例如何共享额度?
应使用一致的共享计数机制或集中式限流组件,并检查网络延迟、故障降级和计数过期问题。
如何判断限额是否合适?
结合业务成功率、429 比例、P95/P99 延迟和后端资源使用率判断,不能只看请求总量。
最终,访问请求限速策略应随接口用途、用户规模和后端容量持续校准,而不是设置一次后长期不变。


