限流的多种方式

1,计数器算法
在访问接口前,设置一个计数器,来记录当前的流量,没进来一个流量,计数器+1,当计数器达到预定阈值,限流就开始了,超出阈值的流量就进不来。

2,令牌桶算法
在这里插入图片描述
判断当b请求过来时桶内是否还有令牌

//当前请求b过来的时间
bt = now();
//在当前b请求号处理上一次请求的这一段时间内桶内新增 的令牌数量
Wb = (bt-a)*r;
//当前令牌桶内的数量
W = min(W+Wb,c);
if(W > q){
//当前令牌桶内还有令牌
W–;
return true;
}else{
//当前令牌桶内没有令牌
return false
}

3,漏桶算法
在这里插入图片描述
在处理b请求时的时间:

bt = now();

漏桶的目前流量:

//在这段时间内处理掉的流量
Wb = (bt - a)*r
//当前桶内剩余的流量
W = max(W - Wb,0)
if(W < C){
//当前b请求可以进入桶内
W++;
return true;
}else{
//桶满了,拒绝当前请求
return false
}

比较漏桶以及令牌桶:
1,漏桶:请求进来的速度时不固定的,但是处理请求的速度时固定的,适用于整流,把大流量整成平滑的流量。
2,令牌桶:存放令牌的速度是相同的,但是处理的速度是不固定的。适用于突发性的大流量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值