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

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

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

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

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

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

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

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

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

 

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

 

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

posted @ 2024-01-23 09:49  多多指教~  阅读(112)  评论(0编辑  收藏  举报