使用 Lua 脚本原子设置计数与过期,修复 TTL 缺失\n支持 fail-open/fail-close 并对优惠码验证启用 fail-close\n新增单元与集成测试覆盖关键分支\n\n测试:go test ./...
527 B
527 B
1. Implementation
- 1.1 在限流中间件中引入 Lua 脚本原子化计数与过期设置(使用 PEXPIRE 毫秒窗口)
- 1.2 脚本内检测
TTL == -1时补设过期,修复历史脏 key - 1.3 引入
RateLimitOptions与LimitWithOptions,Limit保持默认 fail-open - 1.4 为
/auth/validate-promo-code配置 fail-close 策略 - 1.5 添加测试覆盖首次请求、已有 TTL、TTL 缺失、非整数毫秒窗口与故障策略(使用 Redis 集成测试/testcontainers 方案)