refactor(rate-limit): 限流升级为双层滑动窗口,新增 IP 全局限流与响应头
- 新增 IpRateLimitFilter:IP 维度全局滑动窗口限流,所有接口生效(默认 1000 次/60 秒) - RateLimitAspect 固定窗口升级为滑动窗口(Redis ZSET + Lua),与 IP 全局限流叠加 - 提取公共 SlidingWindowScript,统一 Lua 脚本 - 新增 X-RateLimit-Limit/Remaining/Reset 与 Retry-After 响应头 - RateLimitProperties 新增 ip 配置;新增 RateLimitException;dev 环境关闭 IP 限流
This commit is contained in:
@@ -11,12 +11,12 @@ public interface RedisConstants {
|
||||
/**
|
||||
* 限流相关键
|
||||
*/
|
||||
interface RateLimiter {
|
||||
/** 接口级限流 Key(示例:login:rate_limit:token:/api/v1/auth/login) */
|
||||
String API = "{}rate_limit:{}:{}";
|
||||
interface RateLimit {
|
||||
/** 接口级限流 Key(示例:rate_limit:api:{user}:{uri}) */
|
||||
String API = "rate_limit:{}:{}:{}";
|
||||
|
||||
/** IP 全局限流 Key(示例:rate_limiter:ip:192.168.1.100) */
|
||||
String IP = "rate_limiter:ip:{}";
|
||||
/** IP 全局限流 Key(示例:rate_limit:ip:192.168.1.100) */
|
||||
String IP = "rate_limit:ip:{}";
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user