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

系统架构中的限流算法(一)

Sentinel限流/计数器限流/滑动时间窗口限流/漏桶限流/令牌桶限流

  • 1. 计数器限流算法
    • Java实现计数器限流算法
  • 2. 滑动时间窗口限流算法
    • Java实现滑动窗口限流算法
  • 3. 漏桶限流算法
    • Java实现漏桶限流算法
  • 4. 令牌桶限流算法
  • 5. 限流算法总结
  • 6. 微服务限流组件
  • 7. 单机限流和分布式限流
  • 8. 限流的难点
  • 9. 限流组件

1. 计数器限流算法

计数器算法是限流算法里最简单也是最容易实现的一种算法。

比如我们规定,对于A接口来说,我们1分钟的访问次数不能超过100个。

那么我们可以这么做:在一开 始的时候,我们可以设置一个计数器counter,每当一个请求过来的时候,counter就加1,如果counter的值大于100并且该请求与第一个 请求的间隔时间还在1分钟之内,那么说明请求数过多;

如果该请求与第一个请求的间隔时间大于1分钟,且counter的值还在限流范围内,那么就重置 counter,具体算法的示意图如下:
在这里插入图片描述

Java实现计数器限流算法

public interface TrafficLimiter {/*** 限流*/Boolean limit();
}
/*** 计数器限流算法*/
public class CounterLimiter implements TrafficLimiter {private long timestamp = System.currentTimeMillis();//请求次数private int reqCount;//每秒限流的最大请求数private int limitNum = 100;//时间窗口时长,单位msprivate long interval = 1000L;/*** 返回true表示限流,false代表通过* @return*/@Overridepublic synchronized Boolean limit() {long now = System.currentTimeMillis();//在当前时间窗口内if(now < timestamp + interval){//判断当前时间窗口请求数加1是否超过每秒限流的最大请求数if(reqCount + 1 > limitNum){return true;}reqCount++;return false;}else{//开启新的时间窗口timestamp = now;//重置计数器reqCount = 1;return false;}}
}

用法如下(以下算法的用法相同)

public class Test 
http://www.xdnf.cn/news/9026.html

相关文章:

  • 两个Ubuntu机器,设置共享目录实时同步
  • React的单向数据绑定
  • 力扣热题-有向图中最大颜色值
  • 二十八、面向对象底层逻辑-SpringMVC九大组件之ViewResolver接口设计
  • ASCII码对应表
  • call的作用是什么,为什么要使用它?
  • AI工具使用的最佳实践,如何通过AI工具提高创作与工作效率
  • react基础知识(下)
  • A-9 OpenCasCade读取STEP文件中的NURBS曲面
  • 知道Metasploit 吗?
  • C 语言学习笔记(指针6)
  • shell之通配符及正则表达式
  • 题目 3334: 蓝桥杯2025年第十六届省赛真题-园艺
  • 解锁MCP:AI大模型的万能工具箱
  • 《狂野时代》获第78届戛纳影展特别奖
  • 用深度学习提升DOM解析——自动提取页面关键区块
  • AtCoder Beginner Contest 407
  • Kubernetes--主机启用防火墙
  • 告别延迟!modbus tcp转profine网关助力改造电厂改造升级
  • mvn-help 插件clean install 后本地mvn库没重新生成jar包
  • Word VBA 教程|一键将 PNG/JPG 图片插入每一页(浮于文字上方,固定大小)
  • 如何把 Microsoft Word 中所有的汉字字体替换为宋体?
  • 鸿蒙OSUniApp 制作悬浮按钮与菜单组件#三方框架 #Uniapp
  • awr报告生成
  • orm详解--查询执行
  • SiteMap Generator:免费、快速、强大的在线网站地图生成工具
  • 高电流测量新突破:借助铜进行温度补偿
  • Vue列表渲染
  • 两阶段法目标检测发展脉络
  • 多模态大模型前沿技术进展与应用实践