PIG 整合 Redisson 实现接口幂等
基于 Redisson 实现的分布式接口幂等性解决方案,防止重复请求导致的系统问题
什么是接口幂等性?
幂等性原本是数学上的概念,用在接口上就可以理解为:同一个接口,多次发出同一个请求,必须保证操作只执行一次。
调用接口发生异常并且重复尝试时,总是会造成系统所无法承受的损失,所以必须阻止这种现象的发生。
快速开始
1
引入依赖
在项目的 pom.xml
文件中添加幂等组件依赖:
2
配置 Redis 连接
3
添加幂等注解
在需要保证幂等性的接口方法上添加 @Idempotent
注解:
注解配置详解
异常处理
当幂等性触发后,切面会抛出 IdempotentException
异常。需要在全局异常处理器中捕获此异常并处理。
实现原理
最佳实践
建议结合以下方式实现完整的重复提交防护:
- 前端层面:提交按钮置灰、页面遮罩
- 接口层面:使用
@Idempotent
注解 - 数据库层面:唯一索引约束
- 业务层面:先查询再操作的逻辑
场景 | expireTime | delKey | 说明 |
---|---|---|---|
表单提交 | 3-5秒 | false | 防止用户快速重复点击 |
支付接口 | 10-30秒 | false | 支付流程较长,需要更长保护时间 |
查询接口 | 1-2秒 | false | 短时间防重即可 |
源码地址
GitHub 仓库
点击查看完整源码实现和更多示例
♥️ 获取支持
遇到问题?
如果您在使用过程中遇到任何问题、有功能建议或需求,请点击此卡片前往 Gitee 仓库提交 Issue。