限流算法

2022/9/14 14:16:22

本文主要是介绍限流算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

限流算法

  • 窗口算法
  • 滑动窗口算法
  • 滑动日志算法
  • 漏桶
  • 令牌桶

窗口算法

以一个单位为时间段,基于一定数量的请求进行通行,其他的抛弃

滑动窗口算法

多个时间段计数,超出抛弃

滑动日志算法

和窗口算法类似, 单位时间固定的数量,计算之前日志的数 .超出抛弃

漏桶

以容积为单位,先进先出,出的速度恒定,超出的抛弃
突发100请求3S进来 容积为50,处理速度为10/s,抛弃30个请求
第一秒(50-33)+10=17
第二秒 (17+10)-33=-6 抛弃6个
第三秒 10-33=-23 共抛弃28个
处理需要6秒

令牌桶

入口恒定,以容积恒定.允许突发流量的并发
突发100请求3S进来 容积为50,令牌产生速度恒定为20/s, 处理速度为10/s
第一秒(50+20-33)=37
第二秒 (37+20-33)=24
第三秒 24+20-33=11
抛弃请求 0,处理需要10秒

漏桶流出速率恒定,短时间来的大量请求,要考虑超时问题,不可能长期等待,防止把整个链路拖垮。
令牌桶主要是流入速度恒定,能应付一定的并发,请求处理完之后并不需要归还令牌,可以应付需要预热的系统。

  • 版权声明: 本博客所有文章除特别声明外,均采用 反996许可证版本1.0 许可协议。转载请注明出处!


这篇关于限流算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程