后端怎样防止重复提交订单?

参考文章

通常我们可以在前端通过防抖和节流来解决短时间内请求重复提交的问题,

如果因网络问题、Nginx重试机制、微服务Feign重试机制或者用户故意绕过前端防抖和节流设置,直接频繁发起请求,都会导致系统防重请求失败,甚至导致后台产生多条重复记录,此时我们需要考虑在后台增加防重设置。

考虑到微服务分布式的场景,可以通过使用Redisson分布式锁+自定义注解+AOP的 方式来实现后台防止重复请求的功能,

基本实现思路:

  1. 通过在需要防重的接口添加自定义防重注解,设置防重参数
  2. 通过AOP拦截请求参数,根据注解配置,生成分布式锁的Key,并设置有效时间。
  3. 每次请求访问时,都会尝试获取锁,如果获取到,则执行,如果获取不到,那么说明请求在设置的重复请求间隔内,返回请勿频繁请求提示信息。
相关推荐
叫我阿柒啊16 分钟前
从Java全栈到前端框架的实战之路
java·数据库·微服务·typescript·前端框架·vue3·springboot
wu~97027 分钟前
开发思路篇:转账接口设计
java·开发语言
IT乐手40 分钟前
Java 实现异步转同步的方法
java
杨杨杨大侠40 分钟前
附录 1:🚀 Maven Central 发布完整指南:从零到成功部署
java·github·maven
渣哥1 小时前
Java HashMap 扩容机制详解:触发条件与实现原理
java
赵星星5201 小时前
Spring Bean线程安全陷阱:90%程序员都会踩的坑,你中招了吗?
java
得物技术2 小时前
0基础带你精通Java对象序列化--以Hessian为例|得物技术
java·后端·编程语言
橘子在努力2 小时前
【橘子SpringCloud】OpenFegin源码分析
java·spring boot·spring·spring cloud
我是廖志伟2 小时前
JVM新生代Eden区域深度解析
java·jvm·memory management
十八旬2 小时前
苍穹外卖项目实战(day7-2)-购物车操作功能完善-记录实战教程、问题的解决方法以及完整代码
java·开发语言·windows·spring boot·mysql