同一请求重复执行多次,业务结果和只执行 1 次完全一致,不会产生脏数据、重复数据、重复扣费、重复下单。
核心目标:防重复提交、防重试、防消息重复消费、防接口重调。
点击空白处退出提示
同一请求重复执行多次,业务结果和只执行 1 次完全一致,不会产生脏数据、重复数据、重复扣费、重复下单。
核心目标:防重复提交、防重试、防消息重复消费、防接口重调。
幂等功能是一套防重复执行的业务保障能力,保证同一请求、消息、任务无论重复触发多少次,系统最终业务结果与仅执行一次完全一致,杜绝重复扣款、重复下单、重复发券、库存超扣、重复生成数据等脏数据与资金差错。
这个框架主要用了 Spring Boot 3 + AOP + Redis + Lua + SpEL + Caffeine。核心思路是用 AOP 切面拦截业务方法,Token 模式用 Redis 的 DEL 原子操作校验,BizKey 模式用 SpEL 从参数里提取业务键再用 Lua 脚本原子加锁,最后结果存到 Redis Hash 里。Caffeine 是 Redis 故障时的本地降级方案,保证业务不中断。




评论