首页 > 其他分享 >秒杀相关的问题

秒杀相关的问题

时间:2023-11-06 17:11:34浏览次数:22  
标签:count 库存 请求 redis Redis 问题 秒杀 相关

1、高并发场景,要避免请求操作数据库。用定时任务将数据定时更新到Redis中,请求直接查询Redis。

2、更新秒杀商品的库存时,可以通过where 库存 > 0来做一个乐观锁的效果。

  MySQL 的InnoDB引擎 在更新行的时候会加行锁。

update seckill_product set stock_count = stock_count - 1 where id = 13 and stock_count > 0

 3、在控制层面,将多余的请求拦在外面。

  将商品库存信息放入Redis,进入接口将Redis中库存递减,成0的直接拦住,不让操作数据库。

4、防止重复下单,可以通过Redis的Set数据结构判断。

  用户抢购完成,把订单信息放Set。

5、给数据库表字段加唯一约束,防止重复购买。

6、在上面第三点,一个商品秒杀的时候,将多余请求拦住,但是同时存在多个商品秒杀活动时,每个商品放行十几个请求,同时请求数据库依然很大。

  使用MQ对秒杀请求做异步处理。

  如此操作后,服务器通知用户下单成功,需要用到websocket。

7、websocket如何解决连接太多的问题:

把连接放在多个服务中,发信息通过MQ发广播,那个服务找得到连接就那个服务发。

8、如何解决长期不用的连接一直不断。

定期发送心跳包

 9、

秒杀->

controller查redis拦掉大部分请求->

消息队列异步->

秒杀,库存减少,生成订单,延时队列->

没有支付,订单取消,库存加一 ,更新redis ->

成功失败都发队列->

websocket通知成功失败->

秒杀失败了更新redis,避免拦请求了,导致卖不出去。 

 

标签:count,库存,请求,redis,Redis,问题,秒杀,相关
From: https://www.cnblogs.com/tyt0o0/p/17812569.html

相关文章

  • 苹果ipa应用安装包ios系统闪退问题的可能性及解决方案
    大家好呀,咕噜签名分发可爱多又来啦。当苹果安装包闪退时,我们需要通过排查可能导致问题的各种可能性来解决该问题。本文列举了一些可能性以及相对应的解决方案。1.仔细检查代码,查找可能引发闪退的错误,如空指针、数组越界等。2.使用调试工具和日志记录定位问题,并进行修复。3.确保......
  • sql 多个字段排序问题
    ec_perform_sh_sailing_plan表,上数日期字段shangshuDate;预到日期yuji_daoda_date; 如果上数日期有值,按预到时间降序。如果上数日期没有值,按预到时间升序,上数日期没有值的排在有值的前面;SELECT*FROMec_perform_sh_sailing_planORDERbyCASEWHENshangshuDateISNUL......
  • JSch连接SSH问题Exception:Algorithm negotiation fail
    Java连接RPA系统,由于特殊原因不能使用接口,决定用openssh连接,定时读取与推送。注意点:1、C:\ProgramData\ssh\sshd_config配置2、ssh-keygen-trsa生成秘钥方式3、生成之后追加到authorized_keys编码格式utf-84、authorized_keys后缀5、com.jcraft.jsch长时间没有更新,windo......
  • Antd Form 表单数据没法回显问题
    AntdForm表单数据没法回显问题antd环境4.*版本问题复现在一个组件中,给这个组件传递一个配置项,展示一些表单组件如输入框、下拉框等组件,再传递一个数据,让其数据回显在我们的表单组件中//就正常一个表单,里面通过循环配置项展示formitem里的内容,我们可以在formitem中设......
  • GBrowse配置相关资料
    GBrowse配置相关资料(形状、颜色、配置、gff3)http://gmod.org/wiki/Glyphs_and_Glyph_Optionshttp://gmod.org/wiki/GBrowse_Configuration/Glyphshttp://gmod.org/wiki/GBrowse_Configuration/Feature_frequency_histograms(2010)http://boyun.sh.cn/bio/?p=1817(2011 GBrowse之......
  • Windows 下 ORA-12560: TNS: 协议适配器错误的问题
    Windows下ORA-12560:TNS:协议适配器错误的问题原因有三个: 1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。 2.databaseinstance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,......
  • vue视频直接播放rtsp流;vue视频延迟问题解决;webRTC占cpu太大卡死问题解决;解决webRTC播
    vue视频直接播放rtsp流;vue视频延迟问题解决;webRTC占cpu太大卡死问题解决;解决webRTC播放卡花屏问题::https://blog.csdn.net/killerdoubie/article/details/133884070......
  • 使用panjiachen的vue-admin-template项目时出现的问题及解决方案
    问题项目执行npminstall时出现python环境问题:python--versionpython3--version发现没有python2版本的环境,之后我安装python等一系列操作,没啥用。那么会不会是npm的版本不对,于是我重新安装了[email protected]:ModernJSalreadyguaranteesArra......
  • 处理mysql中in条件大于1000条的问题
    WHERExsfnsrsbhIN<foreachcollection="param.nsrsbhList"index="index"item="nsrsbh"open="("close=")"><iftest="index>0"><choose>......
  • 即时通讯技术文集(第22期):IM安全相关文章(Part1) [共13篇]
    ​为了更好地分类阅读52im.net总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第22 期。[- 1 -] 即时通讯安全篇(一):正确地理解和使用Android端加密算法[链接] http://www.52im.net/thread-216-1-1.html[摘要] 本文主要讨论针对Android这样的移动端应用开......