整个秒杀的业务步骤

  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. 服务器搭建邮件自动回复,在postfix邮件系统上搭建自动回复邮件系统
  2. Anaconda建立新的环境,出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url 解决过程
  3. 再分享 5 个 vs 调试技巧
  4. java完全解耦_java-完全解耦 - osc_bc7dotjc的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. 信息学奥赛一本通 1820:【00NOIP提高组】进制转换 | 洛谷 P1017 [NOIP2000 提高组] 进制转换
  6. oracle表空间管理图形界面,Oracle表空间管理和优化
  7. MySql数据库 - 2.启动与关闭
  8. 动手学深度学习Pytorch Task04
  9. win7 设置共享无线网络
  10. Redis-使用redis-trib构建集群
  11. 订单管理系统(OMS)搭建实战 - 低代码拖拽定制订单管理系统
  12. Python数据分析:异常值检验的两种方法 -- Z 分数 上下分位点(放入自写库,一行代码快速实现)
  13. 可视化均衡插件-Acon Digital Equalize 2 v2.1.1 WiN-MAC
  14. 计算机组装维护教学工作总结,计算机组装与维护教师工作总结_2
  15. canvas绘制虚线图表
  16. 离散数学复习笔记——欧拉图和哈密顿图
  17. 2021-12-30大数据学习日志——Hadoop离线阶段——HDFS
  18. 靠谱的人都有什么特质,你是一个靠谱的人吗?
  19. MapReduce中使用Combiner--实例
  20. pyrosim2016 Windows10安装教程 以及无法打开的解决办法

热门文章

  1. 土地利用规划之平时作业二
  2. ip-guard文档加密后无小锁标志
  3. 麦克风声音太小别人听不到怎么办
  4. python自省与反射
  5. 有道云笔记Markdown编辑器 基础操作使用说明
  6. Android中的Cursor
  7. Linux下CGroup进行CPU、内存等资源控制
  8. 阿里云实时大数据解决方案,助力企业实时分析与决策
  9. 图片怎么压缩?这些方法值得收藏
  10. html5制作波浪,技能get:用HTML5实现波浪效果