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

参考文章

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

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

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

基本实现思路:

  1. 通过在需要防重的接口添加自定义防重注解,设置防重参数
  2. 通过AOP拦截请求参数,根据注解配置,生成分布式锁的Key,并设置有效时间。
  3. 每次请求访问时,都会尝试获取锁,如果获取到,则执行,如果获取不到,那么说明请求在设置的重复请求间隔内,返回请勿频繁请求提示信息。
相关推荐
旋律41438 分钟前
同义方法区别(增加类与删除类)
java·后端
学到老活到老40 分钟前
方法执行完了,对象为什么还占着内存?
java·jvm
用户77712985091240 分钟前
常见的同义方法的区别:增加类和删除类
java·后端
十年Java程序媛1 小时前
Java this 与 super 详解|继承高频踩坑 + 面试题整理
java·spring boot·面试
用户7771298509121 小时前
Stream流式使用
java
旋律4141 小时前
List、Set、Map:三个装数据的容器,到底啥区别?怎么遍历?
java·后端
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 回顾和今日内容介绍
java·开发语言·交友
工具派1 小时前
不重写一行老代码:给 Spring Boot 系统加一层 AI 能力
java·人工智能·spring boot
大雄很用心1 小时前
Java 数据结构基础:栈、堆与 Deque
java