这篇文章是我从某文库爬下来的,放在这里供大家学习。

淘宝超卖现象的产生及解决方案

一、什么是超卖现象? 
超卖即“超卖缺货”,当宝贝库存接近0时,如果多个买家同时付款购买此宝贝,将会出现“超卖缺货”现象。产生超卖缺货这种情况是商家无法控制的,并且发生这种情况的概率极低。 
二、电子商务的主交易流程: 
1,查询商品 2,创建订单 3,扣减库存 4,更新订单 5,付款 6,卖家发货 
(1)减库存的操作 
有两种选择,一种是拍下减库存 另外一种是付款减库存 
目前淘宝采用的“拍下减库存”的方式,拍下就是一瞬间的事,对用户体验会好些。 
库存会带来“超卖”的问题:售出数量多于库存数量 
由于库存并发更新的问题,导致在实际库存已经不足的情况下,库存依然在减,导致卖家的商品卖得件数超过秒杀的预期。这样的损失只能由淘宝来负责了。 
三、如何解决超卖的问题? 
方案:采用乐观锁。 
1,秒杀由于存在的广泛的用户,并发暴涨的情况下,一定要注意在          
文案方面做得尽量人性话些。在系统承载不足的情况,不能让会员觉得被欺骗了。同时对于一些重要信息需要做到可查,比如显示订单的下单信息,付款信息等。 
2,在秒杀的时候,由于瞬时访问量导致应用的压力暴涨,数据库的load上升,IC(商品中心)的压力很大,从而导致了其他非秒杀的交易也受到了影响。 
解决方案:

1,增加应用的机器 

2,将秒杀应用与普通交易相隔离。对IC做了分组隔离,从而保证秒杀不会影响主站的其他交易。

3,由于商品详情页面(detail)该页面用户的刷新频率很高,所以 尽量将该页面静态化,淘宝的秒杀商品详情页面,去除了很多不必要的后台查询逻辑,比如卖家的信誉,星级等信息。 
4,detail页面的响应时间在3-5秒,主要原因是需要到数据库查询库存信息,该操作所花时间比较长,对数据库的压力也很大。所以采用了从缓存取库存信息。淘宝有一个tair缓存,在应用起来的时候,会将商品的库存信息加载到tair中。 
5,聚划算的一次秒杀活动中,出现超卖的情况,原因是:库存信息是从tair中取的,拍下时在tair中减少了库存,但是在真正购买时,会去更新数据库中的库存,这样就导致数据库的当前库存信息又去更新了tair中的库存信息。 


这件事情带来的思考是:尽量将信息保持一致,能够做到同一处修改最好。比如保持总库存以及sku的库存修改保持一致。 
后来的方案是:数据库中只记录默认的库存信息,对库存的更新都放在tair中去做。不过这个就要保证tair的足够稳定,不然tair挂掉,购买信息就全丢了。所以可以采用一些机制保证信息的可恢复。比如记日志,不过这种涉及到IO的也会影响性能了。 

6,最后,还可以租用更多的IDC,采用异地IDC架构,高效的CDN架构,及其全局服务负载均衡系统,完全可以解决问题。

淘宝如何解决超卖问题相关推荐

  1. 农村经济面临转型之困,农村淘宝多管齐下解决“造血”难题

    近年来,推动农村经济转型已成为我国经济发展的一个重要议题,农村经济之所以转型困难,信息闭塞.模式落后是主要因素.这一点,通过媒体广泛报道的农产品滞销我们就不难看出来. 值得一提的是,电商巨头阿里巴巴正 ...

  2. 使用Redis分布式锁处理并发,解决超卖问题

    使用Redis分布式锁处理并发,解决超卖问题 参考文章: (1)使用Redis分布式锁处理并发,解决超卖问题 (2)https://www.cnblogs.com/VitoYi/p/8726070.h ...

  3. redis mysql 解决超卖_Redis 分布式锁解决超卖问题

    Redis 分布式锁解决超卖问题 1,Redis 事物介绍 1. Redis 事物是可以一次执行多个命令, 本质是一组命令的集合. 2. 一个事务中的所有命令都会序列化, 按顺序串行化的执行而不会被其 ...

  4. 07: redis分布式锁解决超卖问题

    07: redis分布式锁解决超卖问题 参考文章: (1)07: redis分布式锁解决超卖问题 (2)https://www.cnblogs.com/xiaonq/p/12328934.html 备 ...

  5. mysql 超卖_mysql 解决超卖问题的锁分析

    解决超卖问题,常见的方式,利用redis 的原子性去递减:利用队列,队列入队计数.或者直接打到mysql 层.由mysql 保证不超卖,有几个玩法.利用属性不一样,挺有意思,记录下. 首先,mysql ...

  6. 秒杀系统优化以及解决超卖问题

    问题描述 在众多抢购活动中,在有限的商品数量的限制下如何保证抢购到商品的用户数不能大于商品数量,也就是不能出现超卖的问题:还有就是抢购时会出现大量用户的访问,如何提高用户体验效果也是一个问题,也就是要 ...

  7. 淘宝/天猫seller_order_list-获取卖出的商品订单列表接口接入解决方案

    一.淘宝/天猫seller_order_list-获取卖出的商品订单列表接口API 返回值说明 点击注册获取key和secret测试账号 提取淘宝天猫店铺卖家账号买到的订单编号,订单金额,订单详情等, ...

  8. 弘辽科技:淘宝开店后不卖东西可以吗?

    淘宝平台的发展前景越来越好,很多人都想在淘宝开店,想在淘宝平台上实现人生价值,那淘宝开店后不卖东西可以吗?接下来我们就来给大家讲解一下这方面的内容. 淘宝申请开店通过以后可以不卖东西,但淘宝店铺商品数 ...

  9. 秒杀系统并发情况下解决超卖问题

    非分布式秒杀系统 并发情况下解决超卖问题 乐观锁防止超卖 / 令牌桶限流/ redis缓存 /接口限流/接口加盐/单用户限制访问频率/消息队列异步处理订单 #数据库表drop table if exi ...

最新文章

  1. 收藏的2个正则html标签剔除方法
  2. linux i2c adapter 增加设备_LINUX设备驱动模型分析之四 设备模块相关(DEVICE)接口分析...
  3. 十一、 C++特性之begin()与end()
  4. Android Studio 视图解析
  5. Job System之Hello World
  6. mysql返回前2行_取得前一次MySQL操作所影响的记录行数
  7. HTML5 Canvas中实现文字链接
  8. 【mfc】vs2019创建MFC基于对话框的项目没有插入任何代码运行报错:0xC0000005:读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突
  9. [2019杭电多校第八场][hdu6667]Roundgod and Milk Tea
  10. mysql,sqlserver数据库单表数据过大的处理方式
  11. 内蒙古特检院利用物联网/RFID技术提高电梯检测水平
  12. R语言做复杂金融产品的几何布朗运动的模拟
  13. 为什么微信打开小程序很慢_微信小程序应用打开很慢怎么办
  14. cu116安装gpu版pytorch
  15. 2022年美国大学生数学建模(MCM/ICM)C题:量化交易策略
  16. 史上最全的LTspice安装教程
  17. 万能遥控器【解题报告】
  18. linux系统分辨率文件,Linux下显示分辨率低解决方法
  19. 大数据相关概念-什么是算子
  20. acrh17华硕固件_真香选择—华硕rt-acrh17,不止稳定……

热门文章

  1. 微信公众号通过链接实现关注,H5直接跳转到关注页
  2. 微软Hololens应用及开发——HoloLens介绍篇(一)全息图介绍
  3. 一文读懂Amlogic S905X4
  4. docker部署SolrCloud集群
  5. 条码打印器如何制作超市价签
  6. Matlab数学建模工具箱(mathmodl),国赛必备
  7. GAGE Razor系列PCI/PCIe采集卡
  8. 使用Jquery+EasyUI 进行框架项目开发案例讲解之三---角色管理源码分享
  9. zigbee CC2530 系列教程 5 外部中断实验
  10. 第二学期第一周项目3--该年的第几天?