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:
Ray.Hao
2026-07-12 21:23:17 +08:00
parent 2441efa9ba
commit 13ed4503ed
12 changed files with 78 additions and 20 deletions

View File

@@ -71,7 +71,7 @@ mybatis-plus:
# 接口限流
rate-limit:
default-limit: 60
default-window: 60
default-window-seconds: 60
ip:
enabled: false # 开发环境关闭 IP 全局限流