首页 > java > 分布式限流算法

分布式限流算法

作者:bin

一、漏桶算法

请求是做水滴,往桶里面装,如果桶满了,就溢出来(走拒绝策略)。

然后桶只有一个小小的洞,按固定速率消费桶中的任务。

通常我们用队列实现桶, 队列的最大长度即桶的容量。

二、令牌桶算法

桶中装固定数量的令牌,每个线程来获取执行时,获取一个令牌,当令牌消耗完了,新来的任务就会走拒绝策略。

固定速率往桶里面放令牌或者用完还回去也行

 

区别:

令牌桶算法可以保证同一时刻,只有固定数量的任务在并发。

漏桶算法,可以保证每个任务按一定间隔时间执行,但是如果任务执行时间过长的话,那么同一时间任务也会很多。

 

业内一般都采用令牌桶算法去做

您必须 [ 登录 ] 才能发表留言!