这篇文章是我从一个文库上爬来的,放在这里供大家学习。
淘宝超卖现象的产生及解决对策
一、超卖现象是什么?
超卖品是指“超卖品缺货”,当宝贝库存接近0时,如果多个买家同时付款购买这个宝贝,就会发生“超卖品缺货”。 发生超卖剩下的情况是业者无法控制的,发生的概率极低。
二、电子商务主要交易流程:
1、查询商品2、制作订单3、扣除库存4、更新订单5、付款6、卖方发货
)1)减少库存操作
有两个选择。 一个是减少库存,另一个是通过支付来减少库存
目前淘宝采用的“拍减少库存”方式,拍摄只是一瞬间,对用户体验很有好处。
库存会带来“超额销售”的问题。 销售数量比库存数量多
由于库存同步更新的问题,在实际库存不足的情况下,库存依然在减少,销售者的商品销售超出了秒杀的预想。 这样的损失只能由淘宝负责。
三、如何解决超卖问题?
建议:采用乐观锁定。
1、秒杀存在大量用户,同时暴涨时一定要注意
文案请尽量人性化。 系统搭载不足的情况下,不能让会员觉得被骗了。 此外,还必须确保您能够查看重要信息,如订单订单信息、付款信息等。
2 )秒杀时,瞬间访问量对APP的压力暴涨,数据库load上升,IC ) )商品中心)压力较大,从而也影响了其他非秒杀的交易。
解决方案:
1、增加应用的机器
2 )将秒杀APP与普通交易隔离。 将IC分组隔离,防止秒杀影响主站的其他交易。
3 )商品详细页面(详细信息)由于该页面的用户更新频率高,所以尽量使该页面静态化。 淘宝秒杀商品详细页面去除了很多卖家信用、星星等不必要的后台查询逻辑。
4、详细页面响应时间为3-5秒,主要原因是需要向数据库查询库存信息,此操作需要时间,对数据库的压力也很大。 所以我们采用了从现金中提取库存信息。 淘宝上有tair缓存,应用时会将商品的库存信息加载到tair中。
5 )在划算的秒杀活动中,库存信息取自tair,拍摄时tair库存减少,但实际购买时更新数据库库存,结果数据库当前库存信息更新了tair库存信息,导致超卖。
这件事带来的思考,最好是尽量使信息一致,可以在同一个地方修改。 例如使总库存和sku的库存修正一致。
之后的方案是在:数据库中只记录默认的库存信息,库存的更新全部放入tair中进行。 但是,这必须确保tair足够稳定。 否则,tair将到期,所有购买信息都将丢失。 所以,可以采用一些机制来保证信息的可恢复性。 例如,虽然记录日志,但这种与IO相关的东西也会影响性能。
6 )最后,可以借用更多的IDC,通过采用异地IDC架构、高效的CDN架构及其全球服务负载均衡系统可以完全解决问题。