|
|
|
|
@ -25,6 +25,20 @@ public class RedisUtils {
|
|
|
|
|
|
|
|
|
|
private static RedissonClient client = SpringUtils.getBean(RedissonClient.class);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 限流
|
|
|
|
|
*
|
|
|
|
|
* @param key 限流key
|
|
|
|
|
* @param limitType 限流类型
|
|
|
|
|
* @param rate 速率
|
|
|
|
|
* @param rateInterval 速率间隔
|
|
|
|
|
*/
|
|
|
|
|
public static boolean rateLimiter(String key, RateType rateType, int rate, int rateInterval) {
|
|
|
|
|
RRateLimiter rateLimiter = client.getRateLimiter(key);
|
|
|
|
|
rateLimiter.trySetRate(rateType, rate, rateInterval, RateIntervalUnit.SECONDS);
|
|
|
|
|
return rateLimiter.tryAcquire();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 发布通道消息
|
|
|
|
|
*
|
|
|
|
|
|