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

参考文章

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

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

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

基本实现思路:

  1. 通过在需要防重的接口添加自定义防重注解,设置防重参数
  2. 通过AOP拦截请求参数,根据注解配置,生成分布式锁的Key,并设置有效时间。
  3. 每次请求访问时,都会尝试获取锁,如果获取到,则执行,如果获取不到,那么说明请求在设置的重复请求间隔内,返回请勿频繁请求提示信息。
相关推荐
人活一口气3 小时前
Spring Boot与AIGC的完美结合:从零搭建智能内容生成平台
java·spring boot·aigc
像我这样帅的人丶你还5 小时前
Java 后端详解(三):全局异常处理与 JPA 数据库映射
java·后端
NE_STOP5 小时前
vibe Coding -- 小项目实战
java
未秃头的程序猿11 小时前
Java 26正式发布!这3个新特性,让代码量直接减半
java·后端·面试
用户2986985301411 小时前
Word 文档文本查找与替换的 Java 实现方案
java·后端
阿哉11 小时前
Nacos 服务发现源码:藏在背后的两套事件机制,90%的人只讲了一半
java
咖啡八杯11 小时前
GoF设计模式——命令模式
java·设计模式·架构
AI人工智能_电脑小能手12 小时前
【大白话说Java面试题 第125题】【并发篇】第25题:说说 Java 线程的中断机制
java·后端·面试
Java内核笔记12 小时前
Spring Security 源码解析(六)无状态 JWT 实践:Session 共享与自定义过滤器
java·后端
荣码12 小时前
LangGraph多Agent协作:3个Agent干活比1个强,但我踩了4个坑
java·python