使用 Envoy Ratelimit 构建支持 RPM/TPM 的分布式 AI 限流服务器

在普通 HTTP API 中,我们通常只需要限制“每分钟请求数”。但对于大模型接口,仅限制请求数量远远不够:一次请求可能只消耗几十个 Token,也可能消耗数万个 Token。 因此,一个实用的 AI 网关通常需要同时支持: RPM(Requests Per Minute):每分钟请求数。 TPM(Tokens Per Minute):每分钟 Token 数。 按租户、API Key、模型或套餐分别计费。 多个 Envoy 实例共享同一份额度。 在高并发条件下避免各实例独立计数造成额度放大。 返回统一的 429 Too Many Requests 和剩余额度信息。 本文介绍如何使用 envoyproxy/ratelimit、Redis 和 Envoy 构建一套分布式 AI 限流系统。 为什么不能只使用 Envoy Local Rate Limit Envoy 提供了 Local Rate Limit Filter,但它的计数器默认位于当前 Envoy 进程中。 假设我们有 4 个 Envoy 实例,并为某个租户配置: RPM = 100 如果每个 Envoy 都独立维护 100 RPM,那么整个集群实际上可能放行: 4 × 100 = 400 RPM 这显然不是我们想要的结果。...

八月 17, 2026 · 7 分钟