Skip to content

匀速排队限流

Haotian Zhang edited this page May 30, 2022 · 8 revisions

匀速排队限流

匀速排队限流概述

匀速排队限流是限流算法中的一种,它是基于漏桶算法实现的。匀速排队限流算法主要提供了一种削峰填谷的限流算法。它帮助服务端能够在流量洪峰到达时,还能保证一个匀速处理的状态,以保护服务端不被冲垮,此为削峰。这种方法不是让超过限流阈值的请求立刻失败,而是给予一定的排队等待时间,超过等待时间才会立刻失败,此为填谷。如下图所示:

image

漏桶算法理论

漏桶算法是一种基于类比的算法,它将请求类比为水滴,请求打到服务器类比为水滴流入一个水桶。这个水桶能够限定水的滴出速度,即当水量较小时,水将会匀速滴出水桶,稍微多一点的水量也会存在水桶内,等待滴出。这种情况相当于请求量较小时,请求会被服务器匀速处理,偶尔密集的请求也会进行排队来等待服务器处理,如下图(a)所示。而当时某个时间段水量很大,导致水桶无法容纳过多的水时,水将直接溢出,这种情况相当于请求量激增,需要排队等待的请求过多,此时超出排队时间的部分请求,将立刻失败,如下图(b)所示。

image

Clone this wiki locally