流量控制算法——什么是漏桶算法和令牌桶算法?

1.令牌桶实现的基本思想
令牌桶,顾名思义,是一种通过让请求被处理前先行获取令牌,只有获取到令牌的请求才能被放行处理的一种限流方式。令牌桶的实现包含两个方面:

一方面是按固定的速率来产生令牌并存入桶中,如果令牌数量超过桶的最大容量则直接丢弃掉。

一方面当有请求时先从桶中获取令牌,获取到令牌后才能通过进行处理,否则被直接丢弃或等待获取令牌。

2.令牌桶与漏桶(LeakyBucket)的区别
令牌桶与漏桶的区别在于漏桶控制的是请求被处理的速率。即当有请求的时候,先进入桶中进行排队,按固定的速率流出被处理;而令牌桶控制的是令牌产生的速率。即当有请求的时候,先从令牌桶中获取令牌,只要能获取到令牌就能立即通过被处理,不限制请求被处理的速度,所以也就可以应对一定程度的突发流量。如图所示二者的区别:

【转】流量控制算法——什么是漏桶算法和令牌桶算法?

区别

比如有100个请求同时进入。现在假设漏桶的速率是每10ms处理一个请求,那么要处理完这100个请求需要1秒钟,因为每处理完1个请求,都需要等待10ms才能处理下一个请求。

如果是令牌桶,假设令牌桶产生令牌的速率也是每10ms产生一个,那么1秒钟就是产生100个令牌。所以,一种极端的情况就是当这100个请求进入的时候,桶中正好有100个令牌,那么这100个请求就能瞬间被处理掉。

3.如何应对突发流量
所谓突发流量,就是在某个时刻的流量突然比平时的流量要高。光有突发流量还不够,得系统能够应对才行,即能够正常处理,否则就不叫应对突发流量了。那令牌桶是如何应对突发流量的呢?就是通过令牌桶缓存到的令牌来应对的,再加上令牌桶的最大容量约束,不会无限制的让流量通过。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值