在线抢购系统需求分析报告

ouuoliuxing ouuoliuxing     2022-12-20     550

关键词:

一、抢购业务分析

1. 抢购业务的特性

(1) 低廉的价格

(2) 大幅推广

(3) 瞬间售空

(4) 定时上架,定时结束

(5) 并发量高

2. 技术挑战

(1) 对现有业务的冲击

(2) 高并发的环境下,数据库负担

(3) 高并发情况下网络的波动

(4) 前端对数据显示的处理

(5) 产品定时上架的处理

(6) 库存的“超卖”现象

(7) 秒杀器的应对

二、抢购业务架构原则

1. 尽量将请求拦截在系统上游

减轻后端数据层,数据读取的压力,防止服务器轻易挂掉

2. 读多写少,多使用缓存

减少数据库的读取次数

三、抢购业务架构设计

1. 整体架构

采用前后端分离的模式,后端只提供数据的操作,不负责前端页面的处理。采用RESTful API为前端提供数据,或者修改数据。前端采用react技术开发SPA单页应用,分离前后端,解耦系统,提高系统的稳定性和健壮性。采用nginx作为前端也后端交接的中转站,实现代理和负载均衡,减轻后台的请求静态资源,提高系统整体的稳定性。

2. 前端层架构

(1) 采用nginx和CDN做反向代理,快速响应来自于全国各地的请求,从而解决网络带宽的瓶颈。

(2) 倒计时的问题,由于客服端时间和服务器时间不一致,会导致抢购失败或者提前抢购。所以采用每隔一段时间,进行前后端时钟的同步。

(3) 当时间未到的时候,前端进行请求的拦截,采用节流的方式禁止前端在未开始时发送无效的请求。

3. 后端架构

(1) 在请购的API接口,实现一个抢购队列,放在“插队”行为。

(2) 采用mysql进行数据的存储,采用redis进行数据的缓存,在抢购开始的时,从mysql数据库中读取一次数据,把读取到的商品信息保存在redis缓存中,当每次执行抢购的时,从redis中读取商品信息,并修改相应库存,减轻mysql数据库的频繁读写。

(3) 在抢购成功过以后,如果用户在20分钟之内为付款则,商品重新进入抢购队列中进行抢购。

四、业务逻辑

 技术图片

  1. 流程图Step1:先经过Nginx负载均衡和分流
  2. 进入jseckill程序处理。 Google guava RateLimiter限流。 并发量大的时候,直接舍弃掉部分用户的请求
  3. Redis判断是否秒杀过。避免重复秒杀。如果没有秒杀过 
    把用户名(这里是手机号)和seckillId封装成一条消息发送到RabbitMQ,请求变成被顺序串行处理 
    立即返回状态“排队中”到客户端上,客户端上回显示“排队中...”
  4. 后台监听RabbitMQ里消息,每次取一条消息,并解析后,请求Redis做库存减1操作(decr命令) 
    并手动ACK队列 如果减库存成功,则在Redis里记录下库存成功的用户手机号userPhone.
  5. 流程图Step2:客户端排队成功后,定时请求后台查询是否秒杀成功,后面会去查询Redis是否秒杀成功
    如果抢购成功,或者抢购失败则停止定时查询, 如果是排队中,则继续定时查询。

 

五、ER图

 技术图片

 

六、用例图

添加抢购商品流程:

 技术图片

 

前端抢购流程

 技术图片

 

后端处理数据流程

 技术图片

 

七、架构图

 技术图片

性能测试之互联网应用需求建模分析

...%,那么注册用户:500万*5%=25万2.高峰时段(有活动)每日在线用户,在线率预估10%,那么在线用户数:25万*10%=2.5万3.用户常用下单到成功,触发20个请求,总请求量:2.5万*20=50万4.利用二八原则计算吞吐量:50万*80%/(12*3600*20%)=46.7/... 查看详情

在线抢购系统项目设计(核心代码)

目录文件说明1234567891011121314151617181920212223├──README --Doc文档├──db --数据库约束文件├──mvnw├──mvnw.cmd├──pom.xml --项目依赖└──src    ├──main    │  ├ 查看详情

网上在线考试系统需求分析

    随着经济的发展,人们对教育的重视,需要上学的人也越来越多,随之而来的考试问题也给了老师和考生带来了不小的麻烦。在老师角度,传统的考试方式,要求老师打印考卷,监考,批卷,发卷,使老师的工... 查看详情

秒杀抢购系统优化思路详解

前几年,火车票购票网站12306,每到放假高峰期,在线票刷不出来,购买困难,甚至出现了各种插件支持抢票,这样的场景,对于每个买过票的人,应该印象深刻。小米手机的抢购活动,同样异常火爆,在几分钟的时间内,卖出... 查看详情

性能测试之互联网应用需求建模分析

...户:500万*5%=25万2.高峰时段(有活动)每日在线用户,在线率预估10%,那么在线用户数:25万*10%=2.5万3.用户常用下单到成功,触发20个请求,总请求量:2.5万*20=50万4.利用二八原则计算吞... 查看详情

在线考试系统测试报告

1.项目名称:          在线考试系统2.用户需求规格说明书URL:http://www.cnblogs.com/yinll314/p/6061359.html3.组长博客URL:       http://www.cnb 查看详情

试题:论需求分析方法及应用(代码片段)

...动通信有限公司VerisBilling6.0项目的研发,该系统主要完成在线计费、离线计费、内容计费、账务处理、产品管理、信控管理等功能的整合,我在该项目中担任系统分析师角色,全程参与了Verisilling6.0系统的分析规划及设计工作,本文以... 查看详情

秒杀微服务实现抢购代金券功能(代码片段)

...目录需求分析秒杀场景的解决方案数据库表设计代金券表抢购活动表订单表创建秒杀服务pom依赖配置文件关系型数据库实现代金券秒杀相关实体引入抢购代金券活动信息代金券订单信息Rest配置类全局异常处理添加代金券秒杀活... 查看详情

小计:协同办公衍生出的需求(代码片段)

....1.流程先说业务流程:现在办公基本上都是诸如TIM之类的在线office来协同办公,然后所有的在线文档会有一份本地文件用来存储和数据分析1.2.需求需求是这样的:希望企业系统和文职人员以及分析部能够共同管理这些Excel表格,... 查看详情

制造业mes系统需求分析及解决方案

...人员,满足排产、调度,了解整体生产信息的需求,支持在线生产信息广播,提供厂内精益物料管理,物料拉动,生产质量管控。排产和跟踪系统制定上线顺序,并下发到车间控制PLC里负责执行。MES生成系统内部订单数量范围内... 查看详情

代作cs系统作业代写需求分析作业代写登陆模块

...定的相关内容,可以进行收藏,通过阅读有效时间积分4.在线考学:暂待考虑5.党建微课:能够观看视频和ppt, 查看详情

01——驾校科目一考试系统——需求分析

目录需求分析系统登录登录界面需求分析项目实现项目精讲科目考试需求分析项目精讲项目实现账号管理需求分析项目精讲项目实现考试题库需求分析项目精讲项目实现项目拓展需求分析系统登录登录界面需求分析项目实现项目... 查看详情

(第十一周)考试系统测试报告

项目名称:在线考试系统用户需求规格说明书URL:http://files.cnblogs.com/files/yinll314/软件需求规格说明书(修订版)V1.1.pdf组长博客URL:http://www.cnblogs.com/yinll314/代码gitURL: ssh:[email protected]:handsomeman/examm.git   查看详情

4月16日在线研讨会预热|medinianalyze—符合iso26262的功能安全平台

汽车电子电气系统的功能安全随着智能驾驶、新能源等新兴技术的发展而愈发受到重视。在国际功能安全标准ISO26262的落地过程中遇到了很多的棘手问题:如何正确而有效地实施HARA以得到合适的安全目标?如何进行安全分析才能... 查看详情

期末项目需求分析报告

期末项目需求分析报告毕业生离校管理系统需求分析(王尊,黎仁威小组) 一.离校管理需求分析:在完成了针对《离校管理系统》软件市场的前期调查,同时与多位软件使用者进行了全面深入地探讨和分析的基础上,提出了... 查看详情

软件需求分析------系统必须做什么?

...求分析是软件规格定义时期的最后一个阶段,目的是知道系统必须做什么。在此之前有技术性分析的阶段,但对软件需求的理解程度,决定着软件的开发工作是否能够成功,如果不能真正满足客户的期望,一切技术和设计都是浮... 查看详情

基于springboot的在线外卖系统的设计与实现.rar(毕业论文+程序源码)

第一章系统背景与意义81.1国内外现状81.2课题研究意义81.3课题主要研究内容8第二章关键技术介绍及开发环境92.1相关技术介绍92.2系统环境开发条件10第三章系统的分析103.1可行性分析103.1.1经济可行性103.1.2社会可行性113.1.3技术性11... 查看详情

系统需求分析

系统需求分析 1、 用户当前的操作模式a)        客户联系方式:手机:13548879429邮箱:[email protected]b)        客户需求的获取方式:现场调查、E-mail、电话。 查看详情