【笔记】几种限流算法理论

1、限流作用;

当API访问激增时,导致接口占用过多服务器资源,甚至导致服务器宕机
限流:当接口请求数100次/s,多余的丢弃掉或者响应失败;
单节点仅能保护好自身的请求,

限流:
1、应对热点业务带来突发请求;
2、外部的恶意请求;
3、突发BUG导致的恶意请求

2、几种常见的限流算法

1、固定窗口计数器算法:
划分多个时间窗口,当请求到达请求数加一,如请求数量到达限制数量,则所有多余请求全部丢弃,时间到下一个窗口,重新计数请求

在这里插入图片描述
但是会有一个问题是:当前窗口的时间内的后半段时间请求突然剧增,下个窗口的前半段请求突然剧增,则存在这前一个窗口的后半段和后一个窗口的前半段请求数量大于限流值,
在这里插入图片描述
2、滑动窗口计数器算法:
划分时间窗口,当请求过来请求数加一,并且限制请求数,当时间到达下一个时间窗口,重新计数,按照时间保持窗口的滑动,解决了固定窗口的前后窗口请求剧增问题;

在这里插入图片描述
3、漏桶算法:
所有请求进入桶内,当桶满了之后其他请求全部丢弃,消费方一定的速度消费桶内请求,类似于队列结构方式,请求全部排队进来,当消费方消费。
存在的问题是:当桶内为空时,突然所有请求都进来桶内,会存在请求响应延迟的状态,因为需要排队等候。

在这里插入图片描述
4、令牌桶算法:
以固定的速度生成令牌放入桶中,当请求到来获取桶内令牌,如果没有获取到令牌则请求丢弃,
解决了请求排队问题。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值