用 lua + redis 做限流,使用令牌桶算法。
令牌桶容量为 25,每次填充 20 token,每次填充间隔为 1000000 微秒( 1 秒)
实际测试的时候,遇到的问题是:一秒内并发 30 次,个人理解这时应该是有 5 次请求被拦截,但是实际小于 5 次,放行次数会大于 25
当并发大于 50 之后却能稳定限制为 25,这个现象正常吗?
redis 中计算新产生的 token 是 20/1000000 * (本次微秒时间戳 - 上次微秒时间戳)