一文带你秒杀系统学习笔记

一.秒杀流程(凭自身理解画的,若有误请评论区指正)
在这里插入图片描述

二. 细节介绍(总结)
A.首先将秒杀商品列表页缓存在redis中,秒杀请求通过redisservice.get()得到秒杀商品列表.html。

B.用户通过秒杀商品列表.html找到想要秒杀的商品,点击详情,进入该商品的秒杀页。

C.点击秒杀按钮:

1.如果用户为空,返回登录页面

2.预减少库存,减少redis里面的库存。

3.判断缓存redis中库存数量减1后的大小是否大于或等于0。如果小于0,报:“商品秒杀完毕,库存不足”,反之继续往下执行。

4.在MySQL中判断“秒杀订单”表中该用户id,以及该商品id是否已经存在,避免一个用户重复秒杀。如果重复秒杀,报:“该商品不能重复秒杀”,否则,继续往下执行。

5.发送一个秒杀message到rabbitMQ队列中去(MQsender.sendmessage(message)),该message 包含用户信息user和商品id:goodsid。(入队之后客户端会对redis进行轮询,判断redis中是否生成了该商品的秒杀订单。)

6.rabbitMQ监听到message信息,开始业务逻辑秒杀:

首先访问mysql根据message中的goodsid得到秒杀商品的信息goodsVo。

然后判断该goodsVo的库存数是否充足,如果小于等于0,则return。如果大于0,则继续往下执行。

根据用户id和goodId判断mysql中的秒杀订单表中该订单是否已经存在,避免重复秒杀。

如果没有重复,则执行秒杀操作。原子操作:1.库存减1,2.下订单,3.写入秒杀订单—>是一个事务

操作mysql减少库存,判断库存更新后是否大于0,如果大于0,继续往下执行

操作mysql下订单,其中有两个订单,order_info和miaosha_order。最后在redis中缓存秒杀订单miaosha_order 格式为(OrderKey.getMiaoshaOrderByUidAndGid, “”+user.getId()+"_"+goodsvo.getId(), miaoshaorder)--------》(prefix,key, value)格式。

7.前端轮询redis,通过用户id和商品id拼接为key值,通过redisservice.get(prefix,key,class)获取秒杀订单,通过miaoshaorder.getorderId获得订单id

前端收到订单的id,秒杀成功,进入支付页面。

前端收到-1,表示库存不足,秒杀失败

前端收到0,表示排队中,继续轮询。
image
最新2020整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君样:909038429
/./*欢迎加入java交流Q君样:909038429一起吹水聊天

操作系统是计算机系统中的核心组成部分,负责管理和协调计算机硬件和软件资源,提供程序运行环境。在优快云上有很多关于操作系统的专题文章,以下将从操作系统的基本概念、功能和常见类型等方面简要介绍一下。 首先是操作系统的基本概念。操作系统是一种系统软件,它是计算机硬件和应用软件之间的桥梁,提供给应用程序一系列的服务和资源,同时负责调度和管理系统资源。它为用户屏蔽了底层的硬件差异,提供了一个统一的、易于使用的界面。 操作系统主要有四个基本功能。首先是处理器管理,负责将处理器分配给系统中的各个进程,并进行进程切换,实现多道程序并发执行。其次是内存管理,管理计算机的内存资源,包括分配、回收和保护等操作。再次是文件管理,负责管理文件的存储、命名和保护等操作,提供了文件操作的接口。最后是设备管理,负责管理计算机的各种设备,包括输入输出设备和存储设备等。 常见的操作系统有多种类型。最主流的是Windows、Linux和Mac OS等桌面操作系统。此外还有服务器操作系统,如Windows Server和Linux等,用于管理和部署服务器。还有嵌入式操作系统,如Android和iOS等,用于移动设备和物联网设备。操作系统也有实时操作系统,用于需要实时控制和响应的系统,如工控系统和航空航天系统等。 总之,操作系统是计算机系统中不可或缺的重要组成部分,通过优快云上的相关文章,我们可以更深入了解操作系统的基本概念、功能和不同类型。这些知识对于理解计算机系统的工作原理和提升编程能力都有着重要意义。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值