谷粒商城——通过接口幂等性防止重复提交订单

如果用户向后端服务提交多次相同订单的提交服务,那么后端应该只生成一条订单记录。

有一些操作天然是幂等的,如查询操作和删除操作等。

幂等性实现

1.token机制(仅这个方法适用于订单的重复提交)

后端先生成1个令牌将其记录在Redis中并将这令牌返回给前端,前端在提交订单信息的时候会在请求头中加入令牌信息,后端会检验令牌信息,校验成功后先删除该令牌后将订单记录插入数据库中,因此后续重复的提交操作会因Redis无该令牌消息从而校验失败。此过程中校验令牌、删除令牌这两步组合成的事务要保证原子性。

2.数据库的锁机制(使用乐观锁机制)

乐观锁机制:适合在更新场景使用,不适用于防止重复提交订单场景。

3. 分布式锁
相关推荐
xyliiiiiL32 分钟前
从责任链模式聊到aware接口
java·开发语言
码农老起4 小时前
与Aspose.pdf类似的jar库分享
java·pdf·jar
程序猿小D4 小时前
第三百八十九节 JavaFX教程 - JavaFX WebEngine
java·eclipse·intellij-idea·vr·javafx
self-discipline6346 小时前
【Java】Java核心知识点与相应面试技巧(七)——类与对象(二)
java·开发语言·面试
wei3872452326 小时前
java笔记02
java·开发语言·笔记
zjj5876 小时前
Docker使用ubuntu
java·docker·eureka
士别三日&&当刮目相看6 小时前
JAVA学习*简单的代理模式
java·学习·代理模式
ShareBeHappy_Qin7 小时前
设计模式——设计模式理念
java·设计模式
程序猿大波9 小时前
基于Java,SpringBoot,Vue,HTML高校社团信息管理系统设计
java·vue.js·spring boot
小李同学_LHY10 小时前
微服务架构中的精妙设计:环境和工程搭建
java·spring·微服务·springcloud