关于如何防止重复订单提交

这是个面试中非常常见的问题,也是并发请求中常见的情况,对于数据的一致性有很高要求系统都是要做的

主要有以下四个解决思路:

1、提交订单按钮置灰,短时间内不可重复提交;

2、后端预生成全局唯一订单号。前端进入下单页面去请求获取该订单号,然后下单,后端通过此唯一订单号进行处理,已处理过的就不用重复处理了。

3、前端生成全局唯一订单号。这个就和第2中差不多,只是前端不需要去请求后端接口,自行生成唯一订单号。

4、使用redis处理。简单理解就是,利用redis的过期时间这个功能。key可以设置为用户ID + 分隔符 + 商品ID,再设置过期时间,到期自动删除。

后续处理订单之前先去redis查询下,如果key存在就直接返回不给处理,不存在就处理订单。

具体看选择哪种,看自行需要

 

原文链接:https://juejin.cn/post/7273024681631776829

 

注:不是抄袭,只是自己做个笔记,觉得作者写的很好,如有侵权,联系我删除

posted @   多多指教~  阅读(291)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示