refactor: redis key常量文件命名规范
This commit is contained in:
@@ -0,0 +1,43 @@
|
|||||||
|
package com.youlai.system.common.constant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redis Key常量
|
||||||
|
*
|
||||||
|
* @author Theo
|
||||||
|
* @since 2024-7-29 11:46:08
|
||||||
|
*/
|
||||||
|
public interface RedisConstants {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统配置Redis-key
|
||||||
|
*/
|
||||||
|
String SYSTEM_CONFIG_KEY = "system:config";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IP限流Redis-key
|
||||||
|
*/
|
||||||
|
String IP_RATE_LIMITER_KEY = "ip:rate:limiter:";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 防重复提交Redis-key
|
||||||
|
*/
|
||||||
|
String RESUBMIT_LOCK_PREFIX = "resubmit:lock:";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单个IP请求的最大每秒查询数(QPS)阈值Key
|
||||||
|
*/
|
||||||
|
String IP_QPS_THRESHOLD_LIMIT_KEY = "IP_QPS_THRESHOLD_LIMIT";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机验证码缓存前缀
|
||||||
|
*/
|
||||||
|
|
||||||
|
String MOBILE_VERIFICATION_CODE_PREFIX = "VERIFICATION_CODE:MOBILE:";
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邮箱验证码缓存前缀
|
||||||
|
*/
|
||||||
|
String EMAIL_VERIFICATION_CODE_PREFIX = "VERIFICATION_CODE:EMAIL:";
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
package com.youlai.system.common.constant;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Redis Key常量
|
|
||||||
*
|
|
||||||
* @author Theo
|
|
||||||
* @since 2024-7-29 11:46:08
|
|
||||||
*/
|
|
||||||
public interface RedisKeyConstants {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 系统配置Redis-key
|
|
||||||
*/
|
|
||||||
String SYSTEM_CONFIG_KEY = "system:config";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* IP限流Redis-key
|
|
||||||
*/
|
|
||||||
String IP_RATE_LIMITER_KEY = "ip:rate:limiter:";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 防重复提交Redis-key
|
|
||||||
*/
|
|
||||||
String RESUBMIT_LOCK_PREFIX = "resubmit:lock:";
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.youlai.system.filter;
|
package com.youlai.system.filter;
|
||||||
|
|
||||||
import com.youlai.system.common.constant.RedisKeyConstants;
|
import com.youlai.system.common.constant.RedisConstants;
|
||||||
import com.youlai.system.common.constant.SystemConstants;
|
|
||||||
import com.youlai.system.common.result.ResultCode;
|
import com.youlai.system.common.result.ResultCode;
|
||||||
import com.youlai.system.service.SysConfigService;
|
import com.youlai.system.service.SysConfigService;
|
||||||
import com.youlai.system.util.IPUtils;
|
import com.youlai.system.util.IPUtils;
|
||||||
@@ -44,18 +43,18 @@ public class RedisRateLimiterFilter extends OncePerRequestFilter {
|
|||||||
* @return 是否限流
|
* @return 是否限流
|
||||||
*/
|
*/
|
||||||
public boolean rateLimit(String ip) {
|
public boolean rateLimit(String ip) {
|
||||||
String key = RedisKeyConstants.IP_RATE_LIMITER_KEY + ip;
|
String key = RedisConstants.IP_RATE_LIMITER_KEY + ip;
|
||||||
Long count = redisTemplate.opsForValue().increment(key);
|
Long count = redisTemplate.opsForValue().increment(key);
|
||||||
if (count == null || count == 1) {
|
if (count == null || count == 1) {
|
||||||
redisTemplate.expire(key,1, TimeUnit.SECONDS);
|
redisTemplate.expire(key,1, TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
Object systemConfig = sysConfigService.getSystemConfig(SystemConstants.IP_QPS_THRESHOLD_LIMIT_KEY);
|
Object systemConfig = sysConfigService.getSystemConfig(RedisConstants.IP_QPS_THRESHOLD_LIMIT_KEY);
|
||||||
long limit = 10;
|
long limit = 10;
|
||||||
if(systemConfig != null){
|
if(systemConfig != null){
|
||||||
limit = Long.parseLong(systemConfig.toString());
|
limit = Long.parseLong(systemConfig.toString());
|
||||||
}else{
|
}else{
|
||||||
log.warn("[RedisRateLimiterFilter.rateLimit]系统配置中未配置IP请求限制QPS阈值配置,使用默认值:{},请检查配置项:{}",
|
log.warn("[RedisRateLimiterFilter.rateLimit]系统配置中未配置IP请求限制QPS阈值配置,使用默认值:{},请检查配置项:{}",
|
||||||
limit,SystemConstants.IP_QPS_THRESHOLD_LIMIT_KEY);
|
limit,RedisConstants.IP_QPS_THRESHOLD_LIMIT_KEY);
|
||||||
}
|
}
|
||||||
return count != null && count > limit;
|
return count != null && count > limit;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user