秒杀系统如何优雅的减库存设计

秒杀系统如何优雅的减库存设计

库存问题是目前现实世界中没有完美解决方案的问题,用什么思维什么方法来处理这个问题视乎对库存控制的容忍度(例如是否允许超售?是完全不允许还是允许一定范围?对虚占库存的容忍度几何?)根据不同特征的商品来去做库存锁定、释放、校验机制,多去看一下各种不同类型的电商平台(包括12306、航空公司系统等),你能获得更广阔的思路。

下面我将对我之前做过的一个微信小程序抢购优惠券例子,来叙述一下我自己对这类秒杀业务减库存的理解,该思路只对我待过的那种用户量不大的小公司适用,因为像BATJ哪样的大厂其中业务复杂程度可想而知。

综上所述,最好的设计是要符合自身业务的需要。

一、秒杀系统业务逻辑

如图所示:

image

二、减库存的几种方式

秒杀商品和普通商品的减库存还是有些差异的,例如商品数量比较少,交易时间段也比较短,用户并发量高等。

1、直接减库存

用户下单后直接减库存是最简单的减库存方式,通过数据库的事务机制或者锁机制来扣减商品库存,理论上这样一定不会出现超卖的情况。

但是如果有竞争对手通过恶意下单的方式将该卖家的商
品全部下单,让这款商品的库存减为零,那么这款商品就不能正常售卖了。要知道,这些恶意下单的人是不会真正付款的,这正是“下单直接减库存”方式的不足之处。

补偿措施:可以对用户IP限制秒杀次数、设置订单支付有效时间,超过时间未支付,恢复库存数量。

2、支付成功减库存

用户下单后,并不立即减库存,而是等到有用户付款后才真正减库存,否则库存一直保留给其他买家。但因为付款时才减库存,如果并发比较高,有可能出现买家下单后付不了款的情况,因为库存不足,也有可能会导致另外一个问题:库存超卖。

即库存不足但用户付款成功了,这就需要和用户协商解决或者通过短信和订单详情页提醒的方式通知用户,订单系统执行订单退款操作。给用户一种不好的体验,已经抢购成功却又抢购失败,体验度极差。

3、预扣库存

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

这种方案确实可以在一定程度上缓解上面的问题。但是否就彻底解决了呢?其实没有!针对恶意下单这种情况,虽然把有效的付款时间设置为 10 分钟,但是恶意买家完全可以在10分钟后再次下单,或者采用一次下单很多件的方式把库存减完。针对这种情况,解决办法还是要结合安全和反作弊的措施来制止。

反作弊的措施:给经常下单不付款的买家进行识别打标(可以在被打标的买家下单时不减库存)、给某些类目设置最大购买件数(例如,参加活动的商品一人最多只能买 3件),以及对重复下单不付款的操作进行次数限制等。

三、风控系统-题外话

各行各业,各个领域,各个渠道,都需要有一系列的完整的风险控制,以保证事情向好的方向发展,而免受不可预估的经济和财产损失而措手不及,各大电商巨头都有自己的风控系统

对于电商平台来说,其降价促销的目的是为了获取新用户,或是为了吸引已有的用户增强平台黏性,而黄牛和经销商则破坏了这种平衡,对正常用户非常不公平。而薅羊毛、刷优惠券等行为更是无本生意,让电商平台的营销预算白白浪费。

面对这种情况,电商平台通常的做法是给交易设置限制,例如每个账户限购一次,但这不能从根本上解决问题。有的平台尝试限制同一收货地址的购买次数,但道高一尺魔高一丈,有的黄牛甚至跟负责本片区的快递员串通,用一系列虚假的地址分别下单,快递员看到这些地址就直接将包裹送到他手中并换取分成。

电商购物节点促销活动上遭遇的薅羊毛往往呈现出集群化作弊的现象,成百上千部手机刷同一个APP的新手红包、优惠券。电商平台推出的几万个限量红包就会在极短的时间内,被羊毛党薅走,这样在大促时电商拿出的推广费用都打了水漂。

举例:一夜间被薅羊毛200亿成“拼夕夕”?

image

1月20日,拼多多被爆凌晨开始出现重大Bug,用户可以领取100元无门槛券。大批羊毛党连夜赶往拼多多薅羊毛。随后拼多多发表声明称漏洞已修复,将向公安机关报案,并否认损失达200亿的说法。

但是最后拼多多发言人表示,实际最终资损或低于千万元人民币。
但让人惊讶的是,比薅羊毛更快的是“资损200亿”谣言的传播速度。没想到在系统没有任何数据安全漏洞的情况下,灰黑产还能利用规则漏洞薅走总价值数千万的优惠券。

那是白花花的钱啊~


PS:2019年09月13日 星期五 (己亥年(猪年)八月十五,今天是中秋节)
中秋节始于唐朝初年,有祭月、赏月、拜月、吃月饼等的传统习俗,中秋节也是中国三大灯节之一。

-------------已经触及底线 感谢您的阅读-------------

本文标题:秒杀系统如何优雅的减库存设计

文章作者:趙小傑~~

发布时间:2019年09月13日 - 17:23:03

最后更新:2019年09月13日 - 19:06:21

原始链接:https://cnsyear.com/posts/daf64fef.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%