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

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

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

幂等性实现

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

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

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

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

3. 分布式锁
相关推荐
matlabgoodboy6 分钟前
Python代做java代码编写C++大数据R语言Hadoop/spark/flink/C语言
java·大数据·python
实心儿儿13 分钟前
C++ —— 红黑树
java·开发语言·算法
啥都想学点30 分钟前
第18天:Springboot 项目搭建
java·spring boot·后端
Fang fan30 分钟前
Java集合
java·开发语言·算法
福运常在41 分钟前
股票数据API(21)如何获取股票指数最新分时交易数据
java·python·maven
计算机徐师兄1 小时前
Java基于微信小程序的青少年科普教学系统【附源码、文档说明】
java·微信小程序·青少年科普教学系统小程序·java青少年科普教学小程序·青少年科普教学微信小程序·青少年科普教学小程序·科普教学微信小程序
东离与糖宝1 小时前
面试官直言:Java应届生面试,我只看这3个核心能力
java·面试
逸Y 仙X1 小时前
文章十三:ElasticSearch数据更新实战
java·大数据·elasticsearch·搜索引擎·jenkins
说给风听.1 小时前
从零学会 Java 异常处理 —— 核心语法、自定义异常与面试指南
java·开发语言·面试
身如柳絮随风扬1 小时前
Java JDBC 从入门到进阶
java·开发语言