feat(security/limiter): 新增限流器

This commit is contained in:
KAI
2024-06-25 01:01:43 +00:00
committed by Charles7c
parent 3e9a15295a
commit a89765f49e
14 changed files with 622 additions and 0 deletions

View File

@@ -206,6 +206,25 @@ public class RedisUtils {
return rateLimiter.tryAcquire(1);
}
/**
* 限流
*
* @param key 限流key
* @param rateType 限流类型
* @param rate 速率
* @param rateInterval 速率间隔
* @return -1 表示失败
*/
public static long rateLimiter(String key, RateType rateType, int rate, int rateInterval, RateIntervalUnit unit) {
RRateLimiter rateLimiter = CLIENT.getRateLimiter(key);
rateLimiter.trySetRate(rateType, rate, rateInterval, unit);
if (rateLimiter.tryAcquire()) {
return rateLimiter.availablePermits();
} else {
return -1L;
}
}
/**
* 格式化键,将各子键用 : 拼接起来
*