zoukankan      html  css  js  c++  java
  • 减库存方式

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11634031.html

    在正常的电商平台购物场景中,用户的实际购买过程一般分为两步:下单和支付。

    • 下单一般采用TCC来实现
    • 支付一般采用独立消息服务来实现

    其中减库存操作一般有如下3个方式:

    下单减库存

    秒杀系统一般采用“下单减库存”,逻辑上更为简单,性能上也更占优势。

    即当买家下单后,在商品的总库存中减去买家购买数量。下单减库存是最简单的减库存方式,也是控制最精确的一种,下单时直接通过数据库的事务机制控制商品库存,这样一定不会出现超卖的情况。但是有个最大的局限就是,有些人下单后可能并不会付款,即恶意下单

    针对恶意下单这种情况,解决办法还是要结合安全和反作弊措施来制止。例如,给经常下单不付款的买家进行识别打标(可以在被打标的买家下单时不减库存),给某些类目设置最大购买件数(参加活动的商品一人最多只能买3件),以及对重复下单付款的操作进行次数限制等。

    付款减库存

    即买家下单后,并不立即减库存,而是等到有用户付款后才真正减库存,否则库存一直保留给其他买家。但因为付款时才减库存,如果并发比较高,有可能出现买家下单后付不了款的情况,因为可能商品已经被其他人买走了,导致库存超卖

    预扣库存

    业务系统中最常见的就是预扣库存方案,比如买高铁票时候,下单后一般都有个“有效付款时间”,超过这个时间订单自动释放。

    这种方式相对复杂一些,买家下单后,库存为其保留一定的时间(比如10分钟),超过这个时间,库存将会自动释放,释放后其他买家就可以继续购买。在买家付款前,系统会校验该订单的库存是否还有保留,如果没有保留,则再次尝试预扣;如果库存不足(也就是预扣失败)则不允许继续付款;如果预扣成功,则完成付款并实际地减去库存。

    Reference

    https://time.geekbang.org/column/article/40743

  • 相关阅读:
    5G终端测试 FOTA功能
    利尔达 UIS8910DM 模组的 发送短信TEXT格式
    利尔达 UIS8910DM 模组的 发送短信PDU格式
    altera原厂 cyclone V开发板使用记录
    【3】TensorFlow光速入门-训练及评估
    【2】TensorFlow光速入门-数据预处理(得到数据集)
    【1】TensorFlow光速入门-tensorflow开发基本流程
    【0】TensorFlow光速入门-序
    DbHelperSQL
    Git——简单的分支规范
  • 原文地址:https://www.cnblogs.com/agilestyle/p/11634031.html
Copyright © 2011-2022 走看看