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

面试官:你知道的限流算法有哪些?

为什么要有限流

一般做接口限流主要是为了应对突发流量,避免突发流量拖垮服务。如下面一些场景就有可能发生突发流量

  1. 微博热搜
  2. 恶意刷单
  3. 恶意爬虫
  4. 促销活动

接口限流的算法有如下几种

固定窗口计数器算法

这是最简单的限流算法。它将时间划分为固定的周期(窗口),并在每个周期内限制请求的数量。

原理:设定一个单位时间(如 1 分钟)和一个最大请求量(如 100 次)。当一个窗口开始时,计数器清零,每来一个请求计数器加 1。如果计数器超过 100,则拒绝后续请求。等到下一个 1 分钟开始,计数器再次清零。

缺点:存在临界突刺(临界窗口问题)。如果 100 个请求集中在第一分钟的最后 1 秒,另外 100 个请求集中在第二分钟的开始 1 秒,系统会在短短 2 秒内承受 200 个请求,瞬间并发量翻倍,可能导致系统崩溃。

适用场景:对流量精度要求不高、实现简单的场景。

滑动窗口计数器算法

为了解决固定窗口的“临界突刺”问题,滑动窗口算法应运而生。它

http://www.jsqmd.com/news/855913/

相关文章:

  • Prodigal基因预测工具:3天快速掌握原核生物基因发现终极指南
  • 刚入职大厂三个月被边缘化?2026 留学生警惕“安静解雇”的隐性寒冬
  • CANN/asc-devkit:half2相等比较函数
  • Zynq Z7 DDR布线翻车实录:从信号完整性仿真到实测,我们踩了这些坑
  • 独角数卡支付系统:如何构建高可用的自动售货支付解决方案
  • GTA5终极防护与增强指南:YimMenu完整使用教程
  • FSAC赛车手经验谈:为什么我们放弃MPC,选择了基于运动学的离散LQR做轨迹跟踪?
  • 告别调参噩梦:f-AnoGAN在缺陷检测中的三种编码器结构(ziz/izi/izif)到底怎么选?
  • YimMenu完整指南:如何免费获得GTA5最强防护与游戏增强体验
  • CANN/asc-devkit float2到half2向上取整转换函数
  • 2026铝合金桥架定制哪家强?不锈钢桥架定制厂家源头直销,一站式服务 - 栗子测评
  • 终极指南:5分钟实现直播实时操作可视化
  • MATLAB强化学习实战:用DDPG和TD3教Biped机器人走路,哪个更稳?
  • Python Tkinter + 多线程:手把手教你做个不卡顿的TXT文本去重小工具(附完整源码)
  • CANN/asc-devkit:half2half_rz精度转换
  • 用P4和BMv2在Ubuntu上快速搭建一个可编程三层交换机(附完整代码和避坑指南)
  • 镀锌线槽现货推荐:2026靠谱热浸锌线槽/PVC线槽/母线槽定制厂家推荐指南 - 栗子测评
  • 如何用Sunshine打造家庭游戏云:免费开源的游戏串流终极指南
  • RK3568实战:交叉编译FFmpeg时遇到的‘unknown mnemonic’错误,我是这样解决的
  • 2026年知名的三亚别墅庭院设计施工装修/三亚自建房设计装修/三亚全案设计施工装修品牌公司推荐 - 品牌宣传支持者
  • 面试官视角:我为什么总爱问C语言static、volatile和extern?
  • 如何高效获得GitHub社区认可:开发者的3个实用徽章获取策略
  • AI的核心是算力,算力的核心是Token,那么Token到底是什么?
  • CANN/asc-devkit动态编译静态标志
  • GB/T14710有源设备环境及运输经验总结及怎样避免被的发补
  • ComfyUI图像增强工具终极指南:5大优势快速上手AI语义分割模块
  • 哪些因素会影响论文的重复率?
  • bezier-easing高级用法:自定义缓动曲线与复杂动画场景终极指南
  • OmniSharp-vim与fzf、vim-clap深度集成:提升C开发效率的7个关键点
  • 实战揭秘:Obsidian加州海岸主题如何将macOS美学融入笔记生产力革命