限流算法对比

限流算法对比计数器优点 简单 易实现缺点 先到先得 先到的请求可执行概率为 100 后到的请求可执行概率小一些 每个请求获得执行的机会是不平等的 临界点问题 滑动窗口是计数器的升级版 解决了临界点问题 但计数多复杂已有实现 Sentinel 滑动窗口的格子划分的越多 那么滑动窗口的滚动就越平滑 限流的统计就会越精确 漏桶算法比如 rabbitmq 等 都属于漏桶算法原理优点 流量控制

计数器

滑动窗口

漏桶算法

令牌桶算法

算法对比

计数器 VS 滑动窗口

计数器算法是最简单的算法,可以看成是滑动窗口的低精度实现。滑动窗口由于需要存储多份的计数器(每一个格子存一份),所以滑动窗口在实现上需要更多的存储空间。也就是说,如果滑动窗口的精度越高,需要的存储空间就越大。

漏桶算法 VS 令牌桶算法

漏桶算法和令牌桶算法最明显的区别是令牌桶算法允许流量一定程度的突发。因为默认的令牌桶算法,取走token是不需要耗费时间的,也就是说,假设桶内有100个token时,那么可以瞬间允许100个请求通过。

令牌桶算法由于实现简单,且允许某些流量的突发,对用户友好,所以被业界采用地较多。当然我们需要具体情况具体分析,只有最合适的算法,没有最优的算法。

拓展

  • 阿里实现的Sentinel 采用滑动窗口算法LeapArray
    https://github.com/alibaba/Sentinel/wiki/介绍
    但需要额外部署管理后台应用。

  • Guava库实现了令牌桶算法,但是单机的实现。

Reference

  • https://www.cnblogs.com/wuzhenzhao/p/11453649.html
  • https://github.com/alibaba/Sentinel/wiki/介绍
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229147.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午5:22
下一篇 2026年3月16日 下午5:22


相关推荐

  • springboot开发视频网站_springboot微服务实战

    springboot开发视频网站_springboot微服务实战​此篇是基于springboot脚手架开发的在线电影实战开发教程和完整源码;在学习JAVA中很容易遇到各种小错误大家一定要多学多练哦开发环境:Escplise/Maven3.5JAVA版本/JDK1.8数据库/Mysql5.7Navicat部分功能展示在个人中心中可以直观看到账户余额、用户优惠券、以及最近购买记录;…

    2022年8月22日
    10
  • 在javascript中实现freameset 框架页面的跳转

    在javascript中实现freameset 框架页面的跳转对于框架的跳转可以为: 1:window.parent.frames[“需要修改的框架”].location.href(“跳转的路径”); 2:window.parent.frames.item(框架在框架集数组中存放的位置).location.href(“跳转的路径”); 3:window.parent.frames.item(“需要修改的框架此为框架名称”).location.h

    2022年7月20日
    25
  • ESP32开发之旅——RC522模块的使用

    ESP32开发之旅——RC522模块的使用ESP32开发之旅——RC522模块的使用前言在本文中,您将学会如何使用ESP32连接RFID模块RC522,本文提供了简单的示例供学习参考。需要注意的是,本文中的ESP32是使用MicroPython进行开发的,(同时ESP8266也可按照本文进行开发)。本文中出现的代码是从GitHub开源库中搬运而来,GitHub链接已放在文尾。RFID-RC522模块的简单介绍​ 射频识别RFID(RadioFrequencyIdentification)是一种无线数据传输系统,用于在标签和读取

    2022年7月14日
    29
  • django-haystack全文检索详细教程

    django-haystack全文检索详细教程前几天要用 Django haystack 来实现搜索功能 网上一搜中文资源少之又少 虽说有官方文档 但相信对于我们这些英语差的同学来说要看懂真的是一件难事 特别是关于高级部分 特地找了个英语专业的来翻译 也没能看出个名堂来 专业性实在是太强了 导致完全看不懂 但是 对于一些小站点的开发来说 下面我要给大家讲的完全足够用了 只不过有时候确实麻烦点 好了 言归正传 为了节约时间 简单设置部分从网

    2026年3月19日
    2
  • “养龙虾”引发的百亿补贴:OpenClaw到底是什么?

    “养龙虾”引发的百亿补贴:OpenClaw到底是什么?

    2026年3月12日
    2
  • WinHex如何将RAW格式的磁盘变成NTFS,raw格式 磁盘

    WinHex如何将RAW格式的磁盘变成NTFS,raw格式 磁盘

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号