@ThreadSafe public class SimpleRateLimiter extends Object
RateLimiter 开销较大
本实现基于上一次访问时间戳模式,大幅降低开销| 限定符和类型 | 方法和说明 |
|---|---|
static SimpleRateLimiter |
create(double permitsPerSecond)
创建一个
SimpleRateLimiter对象,限制每秒允许的请求次数 |
static SimpleRateLimiter |
createByPeriod(Duration periodPerTimes)
创建一个
SimpleRateLimiter对象,限制每次的时间间隔 |
long |
getSkipCountAndClear()
计算到上次执行本操作前,共计多少个没有获取到准许,计算完成后重新计数
|
void |
setPeriod(Duration periodPerTimes)
设置当前
SimpleRateLimiter对象每次请求的间隔时间 |
void |
setRate(double permitsPerSecond)
设置当前
SimpleRateLimiter对象每秒允许的请求次数 |
boolean |
tryAcquire()
判断本次请求是否获得准许处理请求
|
public static SimpleRateLimiter createByPeriod(Duration periodPerTimes)
SimpleRateLimiter对象,限制每次的时间间隔periodPerTimes - 时间间隔SimpleRateLimiter对象public static SimpleRateLimiter create(double permitsPerSecond)
SimpleRateLimiter对象,限制每秒允许的请求次数permitsPerSecond - 请求次数SimpleRateLimiter对象public void setRate(double permitsPerSecond)
SimpleRateLimiter对象每秒允许的请求次数permitsPerSecond - 每秒请求次数public void setPeriod(Duration periodPerTimes)
SimpleRateLimiter对象每次请求的间隔时间periodPerTimes - 间隔时间public boolean tryAcquire()
public long getSkipCountAndClear()
Copyright © 2023 wuyushuo. All rights reserved.