• 秒杀扣除库存方案


    减库存有哪几种方式

    • 下单 当买家下单后,在商品的总库存中减去买家购买数量。下单减库存是最简单的减库存方式,也是控制最精确的一种,下单时直接通过数据库的事务机制控制商品库存,这样一定不会出现超卖的情况。但是你要知道,有些人下完单可能并不会付款。
    • 付款减库存 即买家下单后,并不立即减库存,而是等到有用户付款后才真正减库存,否则库存一直保留给其他买家。但因为付款时才减库存,如果并发比较高,有可能出现买家下单后付不了款的情况,因为可能商品已经被其他人买走了。
    • 预扣库存 这种方式相对复杂一些,买家下单后,库存为其保留一定的时间(如 10 分钟),超过这个时间,库存将会自动释放,释放后其他买家就可以继续购买。在买家付款前,系统会校验该订单的库存是否还有保留:如果没有保留,则再次尝试预扣;如果库存不足(也就是预扣失败)则不允许继续付款;如果预扣成功,则完成付款并实际地减去库存。

    以上减库存的几种方式存在的问题

    • 由于购物过程中存在两步或者多步的操作,因此在不同的操作步骤中减库存,就会存在一些可能被恶意买家利用的漏洞,例如发生恶意下单的情况。
    假如我们采用“下单减库存”的方式,即用户下单后就减去库存,正常情况下,买家下单后付款
    的概率会很高,所以不会有太大问题。但是有一种场景例外,就是当卖家参加某个活动时,此
    时活动的有效时间是商品的黄金售卖时间,如果有竞争对手通过恶意下单的方式将该卖家的商
    品全部下单,让这款商品的库存减为零,那么这款商品就不能正常售卖了。要知道,这些恶意
    下单的人是不会真正付款的,这正是“下单减库存”方式的不足之处。
    
    • 付款减库存
    既然“下单减库存”可能导致恶意下单,从而影响卖家的商品销售,那么有没有办法解决呢?
    你可能会想,采用“付款减库存”的方式是不是就可以了?的确可以。但是,“付款减库存”又
    会导致另外一个问题:库存超卖。
    
    • 既然“下单减库存”和“付款减库存”都有缺点,我们能否把两者相结合,将两次操作进行前后关联起来,下单时先预扣,在规定时间内不付款再释放库存,即采用“预扣库存”这种方式呢?
    这种方案确实可以在一定程度上缓解上面的问题。但是否就彻底解决了呢?其实没有!针对恶
    意下单这种情况,虽然把有效的付款时间设置为 10 分钟,但是恶意买家完全可以在 10 分钟
    后再次下单,或者采用一次下单很多件的方式把库存减完。针对这种情况,解决办法还是要结
    合安全和反作弊的措施来制止。
    

    如何解决下单库存问题

    给经常下单不付款的买家进行识别打标(可以在被打标的买家下单时不减库存)、给某些类目
    设置最大购买件数(例如,参加活动的商品一人最多只能买 3 件),以及对重复下单不付款的
    操作进行次数限制等。
    
  • 相关阅读:
    英国下院通过法案允许合成人兽胚胎
    老外关于思考时间的问与答
    性能测试中用LambdaProbe监控Tomcat
    BT下载原理
    汽车维修行业呼吁大学生加入修车行列
    一个女研究生(高级测试工程师)的职业选择
    微软称20日验证Windows与Office 盗版将黑屏 网友评论
    Xbox摇身变NAS:BT的使用问题与性能测试
    李开复建言大学生:求职中不要把钱看得太重
    IBM雇员将罢工15分钟 为抗议公司裁员
  • 原文地址:https://www.cnblogs.com/LoveShare/p/12233149.html
Copyright © 2020-2023  润新知