变更日志 — 分布式幂等防重组件(美团GTIS方案实现)
记录决策、踩坑和知识发现。知识飞轮的输入。
时间线
| 时间 |
阶段 |
事件 |
备注 |
| 2026-04-06 |
propose |
完成需求Spec与任务拆分 |
所有待澄清问题已确认 |
| 2026-04-06 |
apply |
完成Task1:创建幂等组件模块结构与基础依赖 |
- |
| 2026-04-06 |
apply |
完成Task2:定义@Idempotent注解与配置类 |
- |
| 2026-04-06 |
apply |
完成Task3:实现幂等键生成器 |
- |
| 2026-04-06 |
apply |
完成Task4:实现Redis幂等存储服务 |
- |
| 2026-04-06 |
apply |
完成Task5:实现AOP切面与Web拦截器 |
- |
| 2026-04-06 |
apply |
完成Task6:实现全局开关与异常处理 |
- |
| 2026-04-06 |
fix |
修复代码审查发现的所有问题 |
- |
踩坑记录
| 问题 |
原因 |
解决方案 |
沉淀? |
| 注入了未使用的RedissonClient依赖 |
开发时误添加了不需要的依赖注入 |
移除未使用的依赖和构造函数参数 |
是 |
| SpEL解析缺少异常处理 |
直接调用SpEL解析方法未捕获异常 |
添加try-catch捕获并记录异常,返回null |
是 |
| 切面缺少全局开关二次检查 |
仅靠自动配置的条件注解可能不够健壮 |
在切面中再次检查配置开关 |
是 |
| 参数名获取使用了单一实现 |
StandardReflectionParameterNameDiscoverer在无-parameters编译参数时失效 |
改用DefaultParameterNameDiscoverer,它会尝试多种方式 |
是 |
知识发现
每个 task 后实时记录,/archive 时逐条确认沉淀到 knowledge/
知识发现
每个 task 后实时记录,/archive 时逐条确认沉淀到 knowledge/
技术决策
| 决策 |
选择 |
放弃的方案 |
原因 |
| 存储介质 |
仅Redis |
数据库/本地缓存 |
性能最优,满足绝大多数场景 |
| 默认过期时间 |
10分钟 |
5分钟/30分钟/1小时 |
覆盖大多数业务场景 |
| 全局开关 |
支持 |
不支持 |
方便全局管控 |
踩坑记录
知识发现
每个 task 后实时记录,/archive 时逐条确认沉淀到 knowledge/
Spec-Code 偏差记录
代码质量备忘