playground

限流

限流通过丢弃一部分请求的手段使到达系统的请求数处于可承受的范围内,以保证系统的可用性。

限流算法

令牌桶算法

令牌桶算法会以一个恒定的速率往桶中放入令牌,当请求达到后需要先拿到一个令牌,如果桶里的令牌已经被拿完了,那么就放弃该请求。

令牌桶算法

漏桶算法

我们可以把请求看成是水流,当水流过来时会先到一个桶里,桶里的水以限定的速率流出,当桶里的水流出速度低于流入速度时,水桶就会装满水,导致之后来的水会溢出,这部分溢出的水就是被丢弃的请求。

漏桶算法

相比令牌桶算法,漏桶算法的流出速率是恒定的,因此无法在有突发流量时有效的利用网络;另一方面,漏桶算法可以控制流量的稳定。