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

常见的限流算法

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

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

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

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

滑动窗口限流算法

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

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

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

漏桶限流算法

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

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

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

令牌桶限流算法

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

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

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

http://www.xdnf.cn/news/128089.html

相关文章:

  • 对patch深入理解下篇:Patch+LSTM实现以及改进策略整理
  • web 分页查询 分页插件 批量删除
  • UE5 调整字体、界面大小
  • 方案研读:106页华为企业架构设计方法及实例【附全文阅读】
  • DMA介绍
  • SFINAE(Substitution Failure Is Not An Error)
  • YCDISM2025-更新
  • 2772.使数组中的所有元素都等零 妙用差分!
  • chili3d调试笔记9 参数化建模+ai生成立方体
  • C++基础概念补充4—命名空间
  • 1.2 java的语法以及常用包(入门)
  • 关于Tecnomatix Plant Simulation 3D模型保存过慢的问题解决方案
  • 优考试V4.20机构版【可注册】
  • 发送网络请求
  • Linux用户管理实战:创建用户并赋予sudo权限的深度解析
  • LLM 大模型快速入门
  • 直观讲解生成对抗网络背后的数学原理
  • 雷军缺席上海车展引猜测,小米回应:时间冲突 造车计划稳步推进
  • 【刷题Day25】用户态和内核态、Reactor、虚拟内存(浅)
  • 《100天精通Python——基础篇 2025 第2天:Python解释器安装与基础语法入门》
  • 部署本地知识库,怎么选择 vllm 和 langchain_ollama
  • 打破“沙漏“现象→提高生成式搜索/推荐的上限
  • SpringBoot自定义拦截器以及多个拦截器执行顺序
  • 前端算法Hot 100 _二分查找
  • HTB - BigBang靶机记录
  • C++学习:六个月从基础到就业——STL算法(三)—— 数值算法(上)
  • 深入理解表单---提交用户与网页交互的重要方式:GET 与 POST 的本质区别与应用实践
  • 【C++】入门基础【下】
  • 信息系统项目管理工程师备考计算类真题讲解八
  • rabbitmq安装项目集成