常见的限流算法
2022-10-20 15:02:18 4 举报
常见的限流算法有令牌桶、漏桶和计数器等。令牌桶算法通过设定固定的令牌数量和令牌产生速率,控制请求的发送速率。漏桶算法则通过设定固定容量的漏桶和恒定的流量,平滑限制请求的处理速度。计数器算法则是基于一段时间内请求的数量进行限流,超过阈值则拒绝服务。这些算法可以有效地防止系统过载,保证服务的稳定和可用性。
作者其他创作
大纲/内容
0:00
0:10
通过漏桶对流量进行控制
获取令牌失败
1:20
0:20
0:30
这个时候再进来100个请求,会被拒绝,因为蓝色窗口中总的请求数量已经达到了100
整形过的流量,达到了限流的目的
代表数据包
在临界点内,1分钟会出现200个请求
0:60
每秒生成R个令牌
1:40
成功获取令牌
0:50
2:00
1:10
1:00
正常访问
计数器限流
1. 任意速度流入水滴
0:59
通过一个Counter来记录当前这一分钟内的请求数量,超过请求数则拒绝
0:40
假设在这个窗口中有100个请求进来
1:30
100个请求
统计当前时间窗口内总的访问次数
2. 水桶,储存水滴,超过桶的容量,则直接丢弃水滴
总的令牌数量
3. 按照恒定速率流出水滴
获取令牌
每分钟/100个请求
滑动窗口限流
10s以后
漏桶限流算法
令牌桶限流
3:00
每次做数据统计时,只需要统计这一个窗口内的总的访问数据即可
执行限流策略
定义一个1分钟的时间窗口,按照每10s划分为一个最小窗口单位,每过10s,时间窗口会向右滑动一格
0 条评论
下一页