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

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

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

幂等性实现

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

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

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

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

3. 分布式锁
相关推荐
自我意识的多元宇宙37 分钟前
Java List 接口知识点详解
java·开发语言
zhangxzq39 分钟前
JVM 性能问题排查实战10连击
java·运维·jvm·经验分享·docker
linux-hzh1 小时前
第二章 Java语言基础
java·开发语言
qq_214225871 小时前
深入解析 Java GC 调优:减少 Minor GC 频率,优化系统吞吐
java·jvm·其他·性能优化
jiuweiC1 小时前
docker使用
java·docker·eureka
五月茶1 小时前
JUC高并发编程
java·开发语言·jvm
Dontla2 小时前
微服务中API网关作用(统一入口、路由转发、协议转换、认证授权、请求聚合、负载均衡、熔断限流、监控日志)
java·微服务·负载均衡
CodeCraft Studio2 小时前
PDF处理控件Aspose.PDF教程:以编程方式将 PDF 导出为 JPG
java·python·pdf·.net
溪岚画2 小时前
java中定时任务的实现及使用场景
java·定时任务
爬虫程序猿2 小时前
如何利用 Java 爬虫根据 ID 获取某手商品详情:实战指南
java·开发语言·爬虫