整个秒杀的业务步骤

  1. 前端传递userId和goodsId参数,以及请求头的token

  2. 验证请求头token的合法化, 参数由@Valid验证

  3. 判断库存是否为空

  4. 判断是否重复抢购

  5. 调用service,执行秒杀过程

    1. 减少库存,sql语句要stock>0

    2. 生成秒杀订单和订单详情

    3. 将goodsId作为key, userId作为value 存入redis里的Set中,方便判断重复抢购问题

    初步优化 ps: 主要目的:减少和数据库的交互(redis), 将生成订单和秒杀解耦(rabbitMQ)

  1. 判断合法化

  1. 通过redis里的数据,判断是否重复抢购

  2. 判断redis里的存库是否大于0 (Controller 实现 InitializingBean,初始化时放入库存)

  3. 调用service,执行秒杀过程

    1. 通过redis里提前存好的数据,来预减库存

    2. 将消息发送给rabbitMQ,异步生成订单.

    3. 将goodsId作为key, userId作为value 存入redis里的Set中,方便判断重复抢购问题

最终优化结果   ps:减少和redis的通信,使用lua脚本,增强高并发的安全性

  1. 验证内存标记stockmap是否为空

  2. 验证token和参数的合法化

  3. 验证redis的库存是否为空

  4. 验证redis是否重复购买

  5. 使用lua脚本预减redis库存

  6. 发送秒杀消息至RabbitMQ

    1. rabiitMQ消费者接受消息

    2. 判断消息合法性

    3. 调用Service层相关方法

      1. service层中生成订单,

      2. service层中减少库存

      3. service层中将userId 加入redis的Set goods:id

商品秒杀优化流程总结相关推荐

  1. 【Java秒杀方案】11.功能开发-【商品秒杀及优化】防止超卖 接口优化(redis预减库存,内存标记减少redis访问,RabbitMQ异步下单) 安全优化(隐藏秒杀接口,验证码,接口防刷)

    商品秒杀核心功能及优化 1. 正常秒杀流程 在商品详情页面等待秒杀倒计时–http://localhost:8080/goodsDetail.htm?goodsId=2 倒计时为0,开始秒杀,点[秒杀 ...

  2. gin redis 链接不上_php + redis 高并发商品秒杀 完整业务模拟流程 实现方案

    关于商品秒杀 之前百度了很多关于商品秒杀的业务怎么做,网上的答案真的是五花八门,归纳一下就两种方式 队列或计数器 网上大部分都没有写具体的代码业务 我这里模拟一个业务小场景进行实践 商品:1 每日限量 ...

  3. api商品分享源码_SSM框架高并发和商品秒杀项目高并发秒杀API源码免费分享

    前言: 一个整合SSM框架的高并发和商品秒杀项目,学习目前较流行的Java框架组合实现高并发秒杀API 源码获取:关注头条号转发文章之后私信[秒杀]查看源码获取方式! 项目的来源 项目的来源于国内IT ...

  4. 电商项目实战之商品秒杀

    电商项目实战之商品秒杀 定时任务 corn表达式 实现方式 基于注解 基于接口 实战 秒杀系统 秒杀系统关注问题 秒杀架构设计 商品上架 获取当前秒杀商品 获取当前商品的秒杀信息 秒杀最终处理 参考链 ...

  5. batocera中文整合包_分享一个整合 SSM 框架的高并发和商品秒杀项目

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 ...

  6. 高性能商品秒杀抢购系统

    完整资料进入[数字空间]查看--baidu搜索"writebug" Go+iris+rabbbitmq+mysql构建高性能商品秒杀抢购系统 一.项目介绍 1. 课程目标 应用Go ...

  7. php商品秒杀时间代码,Thinkphp5+Redis实现商品秒杀代码实例讲解

    环境:wamp,redis 要求:安装WAMP,Redis,以及为PHP安装Redis扩展 秒杀功能大致思路:获取缓存列表的长度,如果长度(llen)等于0,就停止秒杀,即秒杀失败,如果长度大于0,则 ...

  8. 四川一度智信:电商平台商品关键词优化技巧

    四川一度智信:电商平台商品关键词优化技巧 有关一定网店运营经验的朋友,应该都知道标题对于商品发展来说的重要性.商品标题直接影响了商品的搜索展现情况,进而也就影响了商品的流量获取.因此,标题优化也是卖家 ...

  9. 【SpringBoot商城秒杀系统秒杀优化学习笔记】

    课程介绍 什么是秒杀 秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到.对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性, ...

最新文章

  1. 华为实习日记——第二十二天
  2. Nginx 反向代理及 Cookie 相关问题
  3. 前端vue框架的跨域处理方法
  4. Windows中动态磁盘管理
  5. lt;备份gt;10月12日 内核编译与日志
  6. snap chrominu has install-snap change in progress
  7. echart的基本使用方法
  8. MUI框架学习——了解MUI
  9. 光机电一体化实训考核装置
  10. 浅析互联网金融与传统金融的融合发展
  11. python删除表格重复行_python 删除excel表格重复行,数据预处理操作
  12. metasploit怎么用? 进阶(msfvenom=payloads+encoders)篇 (゚益゚メ) 渗透测试
  13. 在线学习算法FTRL基本原理
  14. FPGA开发基本流程
  15. 海思Hi3516新增sensor imx214 笔记
  16. 刺刀还在,理想已经滑落——“中国黑客”10年嬗变
  17. 6s测试信号软件,手机信号强度测试:苹果iPhone6s不敌三星S6
  18. typescript Type 'NodeListOfany' must have a '[Symbol.iterator]()' method that returns an iterato
  19. mysql服务怎么启动和关闭?
  20. 条件概率,乘法定理,全概率公式

热门文章

  1. NLP自然语言 - jieba分词库
  2. 服务器版本的ansys证书错误,关于ANSYS Workbench 出现证书错误的解决办法
  3. 求字符串的全排列的递归实现(对字符串中有相同字符也适用)
  4. PS制作两寸照片的疑惑
  5. 【PowerDesigner】UML建模
  6. 漏洞修复:Often Misused: Weak SSL Certificate
  7. 【论文翻译】Automatic Conversion of Road Networks from OpenDRIVE to Lanelets
  8. win11登不上微软账号
  9. oracle 加号和不加号,Oracle中连接与加号(+)的使用
  10. wireshark编译基于openflow1.3协议开发