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