[Rate Limiter] Leaky bucket

其中一个算法是Leaky Bucket, 课程中提到缺点是老的request会stuck新的request, bucket满了,就会reject。为什么这个是缺点?如果bucket满了不就是limit到达了上限嘛?那新来的request就应该被reject呀。

按照这个算法,确实是应该 reject。我说的缺点是老的 request starve (饿死) 新的 request。试想一下,刚开始的大量 request 会都被通过,然后会有一段时间 request 都不能通过,然后在慢慢开始能通过。一般来说,我们更希望的是平稳地处理 request。