流量控制与限速

漏桶算法可以保证流量稳定,令牌桶支持突发性能。

漏桶算法 leaky bucket

系统的请求都会放入漏桶内,漏桶以固定的速率处理请求。漏桶有固定的大小,当请求过快/多时,会溢出漏桶,即丢弃不处理。

令牌桶算法 token bucket

为生产者/消费者模型:

  • 生产者:系统以固定的速度向令牌桶内放令牌,如果令牌桶内令牌满了,则丢弃令牌;
  • 消费者:收到请求后,从令牌桶内取出令牌,如果桶内没有令牌了,就拒绝请求,或着将请求放入等待队列,下个周期获得令牌后,主动消耗等待队列中的请求。

令牌桶支持burst流量,上一个限速周期没有用完的令牌,可以留在后续限速周期使用。在实际应用中,需要设置burst的最大值,来保证突发流量不会太大。

周期:即放令牌的固定速度,一般会将一秒钟分为若干个时间片,一个时间片向桶内放可配置数量的令牌。

在一个周期内,使用量不超过一个周期能产生的最大令牌数+剩余令牌数。

*一种burst限速方法

假定某种条件A,默认限速值t。

如果当前限速周期内没有触发条件A,则将限速值 t 提高固定比例 r /数值 s(tn = t+t*r / t+s);直到某个周期内触发了条件B,就将限速值降低固定比例 r1 /数值 s1,直到到达限速下限。

参考:

https://zhuanlan.zhihu.com/p/60979444

https://zhuanlan.zhihu.com/p/165006444

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值