【计算机开题报告】秒杀系统

一、研究背景

近年来,由于国家对互联网行业大力支持,“互联网+”行动计划的提出,互联网行业日新月异,电子商务行业更是发生了翻天覆地的变化,在短短十几年间,电子商务交易总额扩大了十倍,与传统零售行业712小时的营业时间相比,电商平台能724小时全天候提供服务,为人们的生活提供了极大的便利。秒杀活动作为一种快速吸引顾客、增加品牌影响力的销售手段,以低廉的价格,极大的刺激了消费者的购买欲望。双十一购物节的秒杀活动每年都吸引成千上万的消费者参加,交易额高达一千亿,消费者秒杀到心仪的商品的同时,也为电商带来了巨额的收益。
电商举办秒杀活动有许多好处。秒杀活动能快速提升品牌影响力。秒杀活动具有易引发话题、时效性快等特点,电商通过举办秒杀活动能巧妙的利用用户推广能力,快速提升电商品牌的影响力,如果电商定期举办秒杀活动,能极大的宣传电商平台并增大平台的用户粘性。各大电商平台,如淘宝、京东、苏宁易购、国美等,创造出各种各样,如双十一、618年中大促的购物节等活动,这些活动都会以商品秒杀作为噱头,吸引了大批消费者参加活动的同时,也维持了网站的用户活跃度。秒杀活动能较大的提高电商的销售额。用户在浏览秒杀活动商品时,不可避免的会看看网站中别的商品,无形中增加了电商网站的用户流量,为电商网站带来收益。秒杀活动能适当的减缓商家积压产品负担,电商商家都不可避免地需要解决一些产品积压的问题,在这种情况下,通过举办秒杀活动能有效解决这一难题。
由于SpringBoot功能强大,而Tomcat和MySQL在开发方面都很方便,比较灵活,而且在目前应用的十分广泛,并且易于维护。因此使用SpringBoot+Tomcat+MySQL是开发轻平台的最佳组合从而说明本系统在技术方面可行。本系统基于B/S模式,用户不需要再从网上下载其他的客户端程序,客户只需要打开浏览器就能够使用该秒杀系统,免除了用户多余的下载客户端程序等繁琐且耗时的操作,而且本系统界面友好,操作简单易行,能够让一个新用户在没有人教导培训的情况下很快的熟练上手本系统。

二、研究内容及拟采用的技术方案

1.系统结构
本系统基于SpringBoot+Tomcat+MySQL,并采用B/S模式,不用考虑跨平台跟不同客户端之间的兼容性,系统主要包括商品列表、开抢时间、订单确认、下单交易支付等核心核心功能。
2.系统功能模块图
功能模块图如下:

(1) 用户注册功能
(2) 用户登录功能
(3) 活动功能:判断活动需要的产品数量是否足够。
(4) 库存功能:维护商品库存数量。
(5) 抢购活动功能:如果满足互动所需产品数量,创建某抢购活动,并将抢购活动加载到缓存中(采用预加载方式)。
(6) 开始抢购功能:将活动ID+用户ID维护到缓存Redis中,进行一系列判断操作,订单处理MQ。
(7) 订单处理功能:通过MQ Consumer插入抢购订单,其他业务逻辑(略)。
(8) 超时未支付功能:查询最新的订单信息,将订单状态更新为取消,将活动产品数量加1,缓存商品数量加1,删除活动ID+该用户ID,允许其再次抢单。
(9) 邮件发送功能:查询最新的订单信息,发送商品详情URL。
(10) 订单支付功能:点击详情URL,查询最新的的订单信息,进行订单支付,是否支付成功,将订单状态修改为支付完成。
3.拟采用的系统技术
系统框架:SpringBoot
前端技术:JavaScript、jQuery、BootStrap
数据库技术:MySQL
中间件技术:Redis、MQ
以上技术使用的特性如下:
(1)JavaScript、jQuery、BootStrap的前端页面:保证页面访问能够兼容且页面整齐美观,具有观赏性。
(2)B/S架构:成本低、维护方便、分布性强、开发简单,不需要安装任何专门的软件、只需要浏览器即可访问操作。
(3)MySQL:数据存储,Redis:缓存热点数据
MQ:对于突然到来的大量请求,您可以配置流控规则,以稳定的速度逐步处理这些请求,起到“削峰填谷”的效果,从而避免流量突刺造成系统负载过高。

三、拟解决的关键问题

  1. 数据库访问压力:抢购活动中大量请求过来时我们是要去判断商品是不是够的,每次抢购时主要压力其中一点是在于对产品数量的校验,如果完全放在数据库,数据库压力大。活动预加载,数据加热,放在缓存Redis中,用户请求过来时通过缓存告诉他们产品对应的数量和状态,这样就减小了数据库的访问压力。
  2. 抢购活动:将活动ID+用户ID维护到缓存Redis中(拦截统一用户对同一抢购产品的多次抢购行为),判断是否是第一次抢购操作,如果不是则结束抢购,如果是则进行后续操作;判断缓存中活动的商品是否被抢空,如果不是则结束抢购,如果是则将缓存商品数量减1,数据库商品数量减1,SnowFlake雪花算法生成订单号,订单处理MQ。

四、研究方法

(1)文献查阅法
主要指通过前期各类纸质及电子资料的阅读,从中筛选出与设计及论文内容相关的部分,并对筛选资料进行总结、归纳,制定针对事实的科学研究方法。本文首先确定了研究课题,即秒杀系统的设计与实现,并开展系统建设方案设计,搜集国内外关于秒杀系统研究内容,用以验证方案的可行性。
(2)演绎归纳法
通过了解秒杀系统的最新进展,结合当前秒杀系统的开发,及其他秒杀系统所采取的方法及取得的经验,提出本设计的方案。
(3)系统分析方法
把要解决的问题作为一个系统,对各模块进行分析,本文以秒杀系统作为研究对象,通过对系统各要素的分析,根据系统结构开发相应的主要功能。

五、文献综述(附参考文献)

秒杀系统的实现包括需求分析、功能设计、数据库设计、技术选择等几个阶段,查阅相关文献,具体如下:
1、秒杀系统需求分析
在秒杀系统的设计之初,很多学者都会进行需求分析,选取部分学者的需求分析结果进行总结,具体研究如下:
侯成程在《某订单秒杀系统的设计与实现》[1]中对系统角色进行了划分,包括消费者、商家和管理员三种用户角色,消费者即购买商品的用户,主要需求是购物;商家即出售商品的用户,主要需求是销售;管理员是系统中权限最大的角色,可对系统进行管理。同时也详细的分析了功能需求和非功能需求,并展示了系统功能的UML用例图。
徐士川在《电子商城系统中订单模块与秒杀模块的设计与实现》[4]中在系统的功能性需求分析中,从商城的用户角色出发分析各个角色的具体行为,在非功能需求分析中,主要注重商城系统的性能、可用性、可靠性和安全性,从而来提升商城系统的健壮性,鲁棒性和安全性。
朱丽叶在《面向电商平台的秒杀系统设计与实现》[6]中首先对面向电商平台的秒杀系统的需求进行阐述、归纳和总结,包含对面向管理员和供应商的秒杀系统后台的功能需求和非功能需求进行分析,以及对面向消费者的秒杀系统功能需求和非功能需求进行分析,为接下来的系统设计和实现奠定基础。
2、秒杀系统功能设计
在秒杀系统的功能设计方面,各个学者设计的功能模块不尽相同,但是都会具有商品列表、开抢时间、订单确认、下单交易支付等功能模块,这些功能模块是秒杀系统必须的,也是本课题研究的重点。具体研究如下:
董晓玮,赵月英,张一鸣在《电商秒杀系统的设计与实现》[2]中解释秒杀系统一方面需要满足商家和供货商对后台管理的需求,另一方面还要兼顾客对秒杀系统的业务需求。因此,系统是将登录模块、订单模块、订单详情模块、安全模块、压测等功能集于一体。
刘磊在《一种高并发电商秒杀系统的设计与实现》[7]中为着重验证秒杀功能,笔者设计了一个业务具有典型性的秒杀系统,包括用户注册登录、秒杀列表查询、秒杀详情查询、生成秒杀地址、执行秒杀、用户中心等功能。
张会敏在《电商网站秒杀系统的研究与对策》[9]中简要研究了电商网站秒杀应用的高并发访问问题,分析了其主要特点,然后从系统架构,程序开发2个方面入手,详细分析了架构分层,缓存,异步方法,消息队列,代码实现等内容,并提出了相关问题的解决方法。
Liu K ,Qingkai B U在《Optimization of Seconds Kill System for Web Based on the SSM Framework》[14]中对于Web开发,前后端分离的架构模式具有很多优点,例如,局部性能提升、彻底解放前端、提高工作效率、降低维护成本等。采用前后端分离架构模式设计实现了秒杀系统,前端使用Vue.js技术,后端使用SSM技术实现。
3、秒杀系统数据库设计
秒杀系统是涉及到数据的存储和查询的,其中包括商品数据、商品库存数据、活动信息数据、订单数据、用户数据等,运用MySQL数据库技术设计数据库表和字段是常用的方面,运用Redis缓存热点数据和关键数据,设计出的数据库基本都能满足秒杀系统的需求。具体研究如下:
徐冉在《基于微服务架构的秒杀系统服务端设计与实现》[3]秒杀系统的开发过程中,除了使用关系型数据库MySQL用来存储主要数据,还需要使用高性能的Redis缓存来存储关键数据。
李军锋,何明昕在《高并发Web航空票务秒杀系统的设计与实现》[5]中发现数据库查询操作的效率是影响并发响应能力的另一个重要因素。文章中分析了SQL语句执行的过程,并提出了MySQL数据库中SQL优化的若干原则。此方案在开发设计过程中,按照这些原则对代码中调用的SQL语句进行了严格的书写,提高了数据库的访问效率。
邵斐在《面向电子商务的秒杀系统设计与实现》[12]中提出为了降低对于数据库IO操作的压力,必须在应用服务与数据库之间建立一个数据缓存层,图片视频等静态信息都从专门的文件服务器集群上获取;对于秒杀系统相关的产品数据,应在产品售卖之前将相关信息采用内存缓存的方式存放在缓存服务器集群中;而数据库本身也应以集群模式构建,以MySQL为例,可采用主从结构,并在程序层实现读写分离,然后通过负载均衡进行分布式调用。
GUO Min在《Optimization principles of SQL in ORACLE data-base》[13]中指出合理配置数据库参数、提高SQL语句共享、提高数据缓存命中率是SQL语句性能提高的前提;并在此基础提出了SQL语句优化的四个原则。
4、秒杀系统技术选择
软件开发的技术各有优缺点,找到适合系统的开发技术能大大降低开发难度和开发成本,很多文献都对Java、Redis、MySQL、MQ等技术进行了详细的介绍和运用。具体研究如下:
叶欢在《云环境下商品秒杀系统的研究与实现》[8]中使用消息队列MQ不仅解决了用户体验糟糕的问题,并且能够有效地降低服务器的压力,特别是在峰值来临时,将请求这一动态的信息转化成一个可存储的静态信息,防止系统崩溃带来了的数据丢失和不一致情况的发生,并且能和后端地业务系统降低耦合度。
江奕华, 蔡晓东, 傅泉明在《一种互联网高并发秒杀系统》[10]中介绍了基于Memcached(与Redis类似的缓存中间件)构建的参与秒杀用户队列和参与中奖用户队列,应用服务器通过获取队列锁,取得处理队列数据的资格,完成队列中数据的处理,从而完成秒杀的处理。
刘昆鑫,卜庆凯在《基于SSM框架的WEB系统秒杀优化设计》[11]中采用SSM框架对其秒杀业务系统进行优化设计,研究提高秒杀系统的性能体验方法.该系统的前端采用Bootstrap框架进行页面设计,后端采用SSM框架进行业务逻辑的开发,并采用MySQL数据库,用Redis进行缓存.同时,对秒杀业务进行优化分析,把客户端逻辑放到MySQL客户端,避免网络延迟和垃圾回收(Garbage Collection,GC)的影响,并对系统的稳定性进行测试。
Lichtblau G J在《ULTRAVIOLET DISINFECTION SYSTEM FORATHLETIC ITEMS》[15]中介绍了MySQL在软件开发以及在开发中的作用,并阐述了MySQL的优点。
5、总结
从查找的各种资料和文献中来看,近十年来,伴随着互联网的飞速发展和普及,电子商务交易总额扩大了十倍。新兴的电子商务行业与传统零售行业相比,电商平台能7*24小时全天候、不间断提供服务,为人们的生活提供了极大的便利的同时,也改变了人们的生活方式。秒杀活动作为一种快速汇聚人气、宣传电商品牌、增强用户粘性的销售手段,以低廉的价格,极大的刺激了消费者的购买欲望。
针对文献的研读,总结为一下几点:
(1)需求分析阶段严格按照需求分析流程进行,本课题主要研究的是秒杀系统,重点秒杀系统的活动流程,根据秒杀活动流程设计系统功能,并绘制功能模块图。
(2)在功能设计方面,根据查阅的文献以及秒杀活动流程,设计用户注册、登录、秒杀活动、库存、抢购活动、抢购、订单处理、支付、发送邮件等功能。
(3)数据库设计方面,根据查阅的文献以及秒杀系统的数据实体、属性、设计商品表、商品库存表、活动信息表、订单表、用户表等数据表。
(4)技术选择方面,根据查阅的文献以及大学四年所学知识,选择Java作为开发语言、SpringBoot作为开发框架,MySQL作为数据库开发技术,Redis、MQ作为中间件技术,系统测试采用白盒测试和黑盒测试方法。
参考文献
[1] 侯成程. 某订单秒杀系统的设计与实现[D].北京:北京邮电大学,2021.
[2] 董晓玮,赵月英,张一鸣.电商秒杀系统的设计与实现[J].信息技术与信息化, 2020(09):40-42.
[3] 徐冉. 基于微服务架构的秒杀系统服务端设计与实现[D].南京:东南大学, 2020.
[4] 徐士川. 电子商城系统中订单模块与秒杀模块的设计与实现[D].南京:南京大学, 2018.
[5] 李军锋,何明昕.高并发Web航空票务秒杀系统的设计与实现[J].计算机工程与计,2013,34(03):778-782.DOI:10.16208/j.issn1000-7024.2013.03.027.
[6] 朱丽叶. 面向电商平台的秒杀系统设计与实现[D]. 上海:上海交通大学, 2020.
[7] 刘磊. 一种高并发电商秒杀系统的设计与实现[J]. 现代计算机(专业版), 2019, 638(02):97-102.
[8] 叶欢. 云环境下商品秒杀系统的研究与实现[D]. 南昌:江西师范大学, 2016.
[9] 张会敏. 电商网站秒杀系统的研究与对策[J]. 科技与创新, 2017, 000(022): 75-76.
[10] 江奕华, 蔡晓东, 傅泉明.一种互联网高并发秒杀系统:, N103825835A[P].
[11] 刘昆鑫,卜庆凯.基于SSM框架的WEB系统秒杀优化设计[J].青岛大学学报(工程技术版),2017,32(04):114-119.
[12] 邵斐.面向电子商务的秒杀系统设计与实现[J].微型机与应用,2015,34(06): 84-87.DOI:10.19358/j.issn.1674-7720.2015.06.029.
[13] GUO Min.Optimization principles of SQL in ORACLE data-base[J].Computer Systems and Applications, 2010, 19 (4) :165-173 (in Chinese) .
[14] Liu K ,Qingkai B U . Optimization of Seconds Kill System for Web Based on the SSM Framework[J]. Journal of Qingdao University(Engineering & Technology Edition), 2017.
[15] Lichtblau G J . ULTRAVIOLET DISINFECTION SYSTEM FOR ATHLETIC ITEMS[J].2016.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值