verysu 设计模式 设计模式 响应式编程 百度开发平台 codeforces leetcode usfca

导航

限流

令牌桶算法的原理是系统会以一个恒定的速率往桶里放入令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务。但桶满时,新添加的令牌被丢弃或拒绝。
优点:能处理瞬间增大的流量,比如现在正常情况下每秒产生5个令牌,在预制了5个令牌,如果一瞬间流量为8个令牌,首先这一秒正常能生成5个令牌,在加上预制了5个令牌,所以可以处理这个瞬间流量

 

RateLimiter rateLimiter = LIMIT_MAP.get(limit.key());
if (Objects.isNull(rateLimiter)) {
   rateLimiter = RateLimiter.create(limit.permits());
   LIMIT_MAP.putIfAbsent(limit.key(), rateLimiter);
}
boolean passed = rateLimiter.tryAcquire(300, TimeUnit.MILLISECONDS);

 

posted on 2022-04-08 19:42  泳之  阅读(44)  评论(0编辑  收藏  举报

我是谁? 回答错误