![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
电商平台
文章平均质量分 89
电商平台
zhifeng687
这个作者很懒,什么都没留下…
展开
-
订单系统设计 —— 重复下单
一、重复原因 造成重复下单的原因有很多,比如用户重复提交、网络超时导致的重试(网关超时重试、RPC超时重试,以及前端超时重试等),下单请求的整个链路都可能造成重复,大致可以分成如下三类: 用户重复提交; 恶意刷单; 网络原因导致的超时重试; 二、产品方案 如何防止用户重复下单,并不只是技术的事情,因为技术并不一定能百分百的考虑到所有可能重复的场景,必须依靠产品+技术共同的努力,以及运营、客服等订单重复时的事后处理。 用户点击”提交订单“按钮后,对按钮置灰,禁止再次提交; 对于涉及金额比较大的订..转载 2016-05-10 00:15:38 · 26922 阅读 · 1 评论 -
某生鲜电商平台的库存扣减方案
目录 一、 问题 二、 下单的步骤 三、 什么时候进行预占库存? 四、 分析 五、 重复下单问题 六、 解决办法 一、 问题 一件商品只有100个库存,现在有1000或者更多的用户来购买,每个用户计划同时购买1个到几个不等商品。 如何保证库存在高并发的场景下是安全的? (1)不多发 (2)不少发 二、 下单的步骤 (1)下单 (2)下单同时预占库存 (3)支付 (4)支付成功真正减扣库存 (5)取消订单 (6)回退预占库存 三、 什么时候进行预占库存? (1)转载 2017-01-18 00:34:45 · 625 阅读 · 0 评论 -
秒杀业务中不超卖的实现方案汇总
数据库方案 以下的方案重点在于防止超卖,库存信息不加载到缓存Redis,而是直接同DB交互,实际场景下通常不会如此,但是其中用到的细节还是值得学习的。 FOR UPDATE 该方案是在MySQL层面进行加锁,行锁Or表锁,要根据Where条件来判定。 该方案通过事务+for update进行保证,伪代码如下所示: begin transcational count = SELECT number FROM seckill WHERE seckill_id=? FOR UPDATE if cou转载 2020-10-26 09:39:58 · 1232 阅读 · 0 评论