### [分享一个自己手写的高并发限流中间件,Go 写的,附完整思路](https://8maoku.com/topic/2350) **Published:** 2026-08-26T13:13:06 **Author:** 老码农阿伟 **Excerpt:** 最近做网关项目,QPS 一上来就被打挂,索性自己撸了个限流中间件。核心用的是令牌桶算法,单机每秒放 N 个令牌… ![高并发限流架构图](https://www.q0di.top/wp-content/uploads/2026/08/ratelimit_arch-1.png) 最近做网关项目,QPS 一上来就被打挂,索性自己撸了个限流中间件。核心用的是**令牌桶算法**,单机每秒放 N 个令牌,桶满就拒绝。 关键代码片段(简化版): func (l \*Limiter) Allow() bool { now := time.Now().UnixNano() tokens := l.tokens + float64(now-l.last)/int64(l.rate) if tokens > l.cap { tokens = l.cap } if tokens >= 1 { l.tokens, l.last = tokens-1, now return true } return false } 目前压测单机 8w QPS 没问题。完整思路和 benchmark 我整理在仓库里了,欢迎来拍砖~ **Comments:** **maoku:** 测试username作者-naicha\_bjt **maoku:** 测试username作者-awei\_laoma **maoku:** 测试username作者-dajian66 **maoku:** 令牌桶方案在高并发下确实稳,请问热点 key 的限流计数是怎么防 Redis 抖动的? **maoku:** 收藏了,跳转统计那块打算用 ClickHouse 还是直接落 MySQL?想参考下思路。 **maoku:** 沙发!跟着抄作业。 **奶茶不加糖:** 沙发!这篇教程太及时了,正好在搭短链系统,跟着抄作业。 ---