秒杀场景超卖的处理方式
秒杀场景的处理方案:
第一种方案:
1、Redis的decr进行原子减操作,将库存减去1
2、生成唯一订单号,将用户、商品、唯一订单号等信息,放入到异步队列中,
3、消耗异步队列,进行数据库层面的库存减1,生成订单信息
4、队列的话用的是Redis实现的list实现的队列,因为Redis已经搭建过了,有这个特性,直接用就好。用其他队列实现方式的话需要重新搭建。比如用mq
5、刚开始用的是Blockingqueue,这个阻塞队列是jdk的,用的是应用服务器的内存,并发高的时候,可能会内存溢出。抛弃此方案
6、最终决定用Redis的list是双向链表结构实现队列
第二种方案:
利用分布式锁,加锁后串行执行,这样保证了库存不会超卖,但是效率不高,因为加锁时有商品信息,该商品信息某一时刻只能一个人进行下单,没有第一种方案效率高。
秒杀场景超卖的处理方式相关推荐
- Redis解决商品秒杀与超卖
这个是实体店我们会看到的场景,100件商品,1人1件,最后200人中只有100人能买到商品,剩下100人只能空手而归.如果您开了家网店,同样你开起了秒杀的活动,可能同时会有1000人通过不同的终端访问 ...
- PHP:关于PHP商城秒杀防止超卖问题
关于PHP商城秒杀防止超卖问题 序言: 在同样对数据操作的代码下,redis事务比lua脚本还要慢上许多,会偶尔出现1-10单超卖的现象. 如果想要使用redis事务,删减库存的情况,用redis-& ...
- Spring Boot + redis解决商品秒杀库存超卖,看这篇文章就够了
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:涛哥谈篮球 来源:toutiao.com/i68366119 ...
- php 有关秒杀防止超卖面试题
秒杀,怎么防止库存超卖 所谓秒杀,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式.由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟. 先来就库存超卖的问题作描述: ...
- 卡萨帝思享荟:1场裂变到百余场的高端生活方式进程
"有的生活方式对人类具有长久的吸引力." 这是最近看到的一个观点,笔者颇为欣赏和认同. 比如最近爆火的ChatGPT,引领了AI技术的加速落地,如果以同等标准找寻高端生活方式的代表 ...
- 【Redis】实战篇:优惠卷秒杀 (库存超卖问题、一人一单问题)
文章目录 3.1 全局唯一ID 3.2 -Redis实现全局唯一Id 3.3 添加优惠卷 3.4 实现秒杀下单 3.5 库存超卖问题分析 3.6 乐观锁解决超卖问题 3.7 优惠券秒杀-一人一单 3. ...
- Redis实战——优惠券秒杀(超卖问题)
1 实现优惠券秒杀功能 下单时需要判断两点:1.秒杀是否开始或者结束2.库存是否充足 所以,我们的业务逻辑如下 1. 通过优惠券id获取优惠券信息 2.判断秒杀是否开始,如果未返回错误信息 3.判断秒 ...
- 秒杀商品超卖了,差点被辞退...
「 关注"石杉的架构笔记",大厂架构经验倾囊相授 」 儒猿技术团队最新出品 <基于ShardingSphere的分库分表实战> 文章来源:[公众号:微观技术] 随着中 ...
- 解决秒杀系统超卖问题的三种方案
在秒杀系统设计中,超卖是一个经典.常见的问题,任何商品都会有数量上限,如何避免成功下订单买到商品的人数不超过商品数量的上限,这是每个抢购活动都要面临的难点. 一.问题描述 在多个用户同时发起对同一个商 ...
最新文章
- 《我的Python之路V1.3.pdf》可以下载了,这版pdf更精美!
- 教你用Python爬取图虫网
- Angular的_zone.onMicrotaskEmpty最终会通过changeDetect重新刷新视图
- 【荐读】一名95后的嵌入式软件工程师,成长之路!
- REVERSE-PRACTICE-JarvisOJ-4
- 递归基础之N皇后问题
- home assistant gpio 温度计_Calsys 500BB辐射温度计
- 读书:冯友兰的《中国哲学简史》
- github 提速方法
- boost线程指南手册
- ASP.NET MVC的客户端验证:jQuery验证在Model验证中的实现
- 算法导论--最小生成树(Kruskal和Prim算法)
- PO系列之 使用XPI_INSPECTOR跟踪PO报错
- .Net服务器性能监控,应用耗时统一监控平台
- vue点击把某个区域变成图片数据
- 摄像头模组简介与质量管控(连载三)
- CAD文件低版本怎么转换高版本
- 网易互娱AI Lab视频动捕技术iCap被CVPR 2022接收!
- Spring之魔丸降世
- 跨域请求实现百度搜索和360搜索的智能提示