当前位置: 首页 > news >正文

常见的限流算法

计数器限流算法( 固定窗口限流算法)

内部维护一个计数器,单位时间作为一个窗口,假设系统每秒允许1W个请求,当0.5秒的时候请求量已经达到1W,那么后面0.5秒的请求就会被拒绝。

优点:实现简单、性能好。

缺点:无法处理窗口切换瞬间流量突然翻倍的情况。

滑动窗口限流算法

相对与固定窗口,滑动窗口还需要记录窗口内每个请求的到达时间点,假设系统每秒允许1W个请求,当新请求到达时,根据当前时间往前推1秒计算请求量是否达到1W,如果达到请求就会被拒绝。

优点:可以更加精准控制窗口内的流量,使流量控制更加的平滑,不会出现流量突然翻倍的情况。

缺点:需要记录窗口内的每个请求信息,可能会消耗更多的内存资源。

漏桶限流算法

桶大小固定,以固定的速率流出水,不限制流入水的速度,当水溢出时后续请求会被拒绝。有点类似消息队列的削峰填谷思想。

优点:让数据已恒定速度处理,适用于需要限制处理速率的场景(适合削峰)。

缺点:如果流量较大,请求需要排队时间较长,导致消息大量积压,如果请求超出桶容量还会被拒绝。

令牌桶限流算法

桶大小固定,以固定的速率往桶里放入令牌,如果令牌超出桶的容量就丢弃,请求进入时,需要先获取一个令牌,拿到令牌则执行业务逻辑,拿不到令牌则被拒绝。

优点:如果桶中有足够的令牌可以应对一定的流量突发,反之令牌数较小,处理延迟会很低。

缺点:无法精准限制每秒请求数。例如:限流频率每秒10次请求,0-1s一直没有请求,1.1s是突然有10个请求,会被执行,之后1-2s还是可以继续处理10个请求。

相关文章:

  • 两段文本比对,高亮出差异部分
  • 最新AI-Python机器学习与深度学习技术在植被参数反演中的核心技术应用
  • Redis从入门到上手-全面讲解redis使用.
  • Vue3中index.html与app.vue、main.ts三个文件的作用和关系
  • 北斗导航 | 基于LSTM-KF融合的北斗卫星定位算法研究框架
  • 在方德桌面操作系统V5.0-G23上使用 NetworkManager 配置静态 IP 和动态 IP 的完整指南
  • 含锡废水的处理
  • OSI七层模型和TCP/IP四层模型
  • 时间序列-数据窗口进行多步预测
  • 数模学习:一,层次分析法
  • 第14章 授权:保护应用程序
  • 微信小程序 tabbar底部导航栏
  • Linux的时间函数
  • 基于SpringBoot+Vue的影视系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 基于Vue3 的 h5监听从左到右手滑返回上一页
  • 省时省力的AI批量原创SEO文章生成工具解放双手
  • DevOps:概念与学习路径
  • Python 学习路线与笔记跳转(持续更新笔记链接)
  • arm-linux emmc镜像备份 和 rootfs镜像备份
  • vuex持久化vuex-persistedstate,存储的数据刷新页面后导致数据丢失
  • 李家超称香港将部署为内地企业提供供应链服务,突破美国封锁
  • 夜读丨修车与“不凑合”
  • 中国铝业首季“开门红”:净利润超35亿元,同比增加近六成
  • 央行上海总部答澎湃:上海辖内金融机构已审批通过股票回购增持贷款项目117个
  • 洛阳白马寺的墓主人是狄仁杰?其实这个误解从北宋就开始了
  • 乌克兰关切有中国人在俄军中服务,外交部:坚决反对无端指责