限流
2020-05-20 17:38:55 0 举报
AI智能生成
限流
作者其他创作
大纲/内容
为什么要限流
超出服务器承载的流量,导致服务器崩溃,无法继续对用户提供服务,限流可保证服务的稳定性
达到多少qps需要限流
根据服务器所承载最大流量来计算,超出临界值的流量都需呗限制
限流
什么是限流
顾名思义,限制单位时间内用户访问服务器的次数(流量)
主流的限流算法
漏桶
原理
控制单位时间的流速,当流入的速度大于流出的速度并且超出桶容量时溢出(抛弃)
优缺点
面对突发的超高流量,对于超出的流量只能拒绝
令牌桶
控制1秒产生的令牌数量,匀速的放入令牌桶中。请求访问进来,先尝试获取令牌。获取到令牌则正常通过,反之限制
针对突发的大流量可以预消费,像是信用卡一样,先透支。对于后面的请求,则需要还清欠款(透支掉的令牌),延迟一段时间还清欠款后继续执行
核心源码文章链接
限流文章
踩坑记录
针对瞬间突发的流量,由于令牌是匀速生产的。正好没有设置好对应的令牌数量,(tryAcquire方法)导致只有第一次获取了令牌,后面的都被限流了
实现
Guava-RateLimiter
计数器
定义
滑动窗口
分布式解决方案
redis限流
怎么实现
怎么使用
其他方案
0 条评论
回复 删除
下一页