漏桶
原理
控制单位时间的流速,当流入的速度大于流出的速度并且超出桶容量时溢出(抛弃)
优缺点
面对突发的超高流量,对于超出的流量只能拒绝
令牌桶
原理
控制1秒产生的令牌数量,匀速的放入令牌桶中。请求访问进来,先尝试获取令牌。<br>获取到令牌则正常通过,反之限制<br>
优缺点
针对突发的大流量可以预消费,像是信用卡一样,先透支。<br>对于后面的请求,则需要还清欠款(透支掉的令牌),延迟一段时间还清欠款后<br>继续执行
踩坑记录
针对瞬间突发的流量,由于令牌是匀速生产的。正好没有设置好对应的令牌数量,<br>(tryAcquire方法)导致只有第一次获取了令牌,后面的都被限流了