三种限流算法

时间窗口算法

指在一定的时间内,维护一个访问总量的数值,当其超过阈值时,拒绝后续所有的请求,直到进入下一个时间窗口。滑动窗口限流可以解决固定窗口临界值的问题。它将单位时间周期分为n个小周期,分别记录每个小周期内接口的访问次数,并且根据时间滑动删除过期的小周期。

令牌桶算法

想象有一个虚拟的桶,桶里面放有一定数量的Token,请求访问资源之前,需要从桶里拿到令牌,拿不到令牌的请求会被拒绝掉,这就是令牌桶的思想。令牌桶算法的实现很轻量级,我们并不需要一个真正的桶,只需要维护以下几个数值,就能在请求到来时计算出是否有足够的Token分配给请求:

  • 上一次发出令牌的时间
  • 令牌的生产速度
  • 上次剩下的令牌数
  • 桶的容量

漏桶算法

漏桶算法的算法原理是,设置一个漏桶,每次请求都将请求放入到漏桶当中,若漏桶已满则拒绝请求,漏桶按照一定速率将已放入漏桶的请求流出,流出的请求将被正常处理。漏桶算法面对限流时,可以缓存一定的请求,不用直接拒绝。

参考链接:限流算法:时间窗口,令牌桶与漏桶算法对比_时间窗口限流_知食份子.的博客-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值