手写 API 网关自定义限流插件从零到上线:Lua + 令牌桶 + 共享内存,附 5 个避坑指南

发布时间:2026/8/9 10:28:18
手写 API 网关自定义限流插件从零到上线:Lua + 令牌桶 + 共享内存,附 5 个避坑指南 本文是《云原生 API 网关从入门到生产》付费专栏第 5 篇。内置限流插件不够用?手把手教你用 Lua 写一个按"消费者 + 路由"组合限流的插件,从开发到压测到部署全流程。一、为什么需要自定义限流插件APISIX 内置了limit-req(漏桶)、limit-count(计数器)、limit-conn(并发连接数)三个限流插件。听起来够用了,但生产环境你很快会遇到这些场景:场景内置插件能做吗问题VIP 用户不限流,普通用户限 100 QPS❌内置插件不能按消费者类型分级/api/order 限 500 QPS,/api/payment 限 200 QPS⚠️ 能做但要配多条路由每条路由单独配,管理成本高工作日 9:00-18:00 限 1000 QPS,其他时间不限❌内置插件不支持时间窗口突发流量允许短时超限,平滑窗口自动恢复❌内置插件是硬限流,超了直接拒绝