常见限流算法之漏桶算法、令牌桶算法

16 篇文章 0 订阅
8 篇文章 0 订阅

在大型的网站中,高并发往往不能避免,就会涉及到一定的限流

限流

在系统的每个API以及服务中,每个接口的访问都有一定的上限,当达到接口承受的范围的时候,就有必要采取一定的措施来保证服务的可用性和降级处理,防止超过预期系统压力过大导致瘫痪等。所以对每个服务或者接口进行访问限制,进行拒绝访问、排队等待服务以及引流等

 

常见的限流算法有漏桶算法和令牌通算法

漏桶算法

从上图可见,一个漏桶(Leaky Bucket)可以承受很多的水(请求),然后以一定的速度出水,进行路由下一级服务请求,但每个接口也有相应的速率,当水流过大,请求突然剧增,那么漏桶会在短时间内迅速装满,然后就会拒绝其他的请求,漏桶算法可以强行限制请求的访问以及数据的传输速率

令牌通算法

令牌通算法以一定恒定的速度往桶里面放入令牌,就好比漏桶的水(请求),比如放入1000个令牌,每来一次请求,就从令牌通里面拿一个令牌,当令牌被拿完之后,其他服务就拒绝或者等待服务。

大小固定的令牌桶可自行以恒定的速率源源不断地产生令牌。如果令牌不被消耗,或者被消耗的速度小于产生的速度,令牌就会不断地增多,直到把桶填满。后面再产生的令牌就会从桶中溢出。最后桶中可以保存的最大令牌数永远不会超过桶的大小

 

相对比,漏桶算法强制限制一定的传输速率,而令牌通可以限制船速速率之外,还可以应对一些突发情况。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值