高并发秒杀系统的设计与实现毕业论文
2021-12-06 20:53:05
论文总字数:26036字
摘 要
近年来电子商务在我国快速发展,它凭借自身高效便捷、操作简单的优点吸引到越来越多的消费者选择这种线上消费模式。而秒杀活动作为一种基于电子商务发展起来的新型促销方式,更是以活动中商品价格低廉或商品库存量稀少的特点刺激了很多消费者的购买欲望,得到了很高的关注,因此一个支持秒杀活动的高并发系统的设计与实现是具有现实意义的。
本文首先介绍了高并发秒杀系统的开发背景和研究现状,然后分析了系统的系统需求、整体设计和详细设计,之后分别详细地论述了对系统各模块的设计与实现,最后对系统进行了测试和总结。
本文描述的系统使用IDEA、tomcat和MySQL等开发工具完成了高并发秒杀系统的页面设计和功能实现,在高并发方面基本能满足需求。
关键词:秒杀系统;SSM框架;高并发;电子商务
Abstract
In recent years,E-commerce has developed rapidly in our country. E-commerce abstracts more and more consumers to choose to shop online for it has many advantages such as high-efficient,convenient and easy-operated. As the seckill activity is a new promotion strategy that developes based on E-commerce,it brings consumers a huge desire to purchase because of the lower price or the limited stock quantities of goods than usual and receives more attention.In this case,designing and implementing a high-concurrency system that supports seckill activities has certain practical significance.
This paper introduces the development background and the research status of high-concurrency seckill system first, and then analyse the requirements, the overall design and the detailed design of the system.After that,the paper discusses the design and implementation of every module in this system.Finally,the whole system has been tested and conclusions have been drawn.
The system introduced in this paper uses development tools such as IDEA,tomcat,MySQL and so on to complete the page design and implementations of the functions of high-concurrency seckill system,and it can meet the basic demand in high-concurrency aspect.
Key Words:seckill system;SSM framework;high concurrency;E-commerce
目 录
第一章 绪论 1
1.1 选题的背景和意义 1
1.2 国内外研究现状 1
1.3 本文结构 2
第二章 开发环境与相关技术研究 3
2.1 开发环境 3
2.2 相关技术研究 3
2.2.1 技术概述 3
2.2.2 SSM框架 4
2.2.3 Bootstrap框架 6
2.2.4 CDN缓存 6
2.2.5 Redis缓存 7
第三章 高并发秒杀系统的需求分析与设计 8
3.1 需求分析 8
3.1.1 秒杀系统功能性需求 8
3.1.2 秒杀系统非功能性需求 12
3.2 系统整体架构 12
3.3 系统整体设计 14
3.4 系统详细设计 15
3.4.1 数据库设计 15
3.4.2 服务端模块设计 18
3.4.3 客户端模块设计 19
第四章 高并发秒杀系统的实现 25
4.1 用户模块的实现 25
4.1.1 用户注册功能的实现 25
4.1.2 用户登录功能的实现 26
4.2 秒杀商品模块的实现 26
4.2.1 商品列表展示功能的实现 26
4.2.2 商品信息展示功能的实现 27
4.2.3 商品购买功能的实现 28
4.3 订单模块的实现 29
4.3.1 生成订单功能的实现 29
4.3.2 订单列表展示功能的实现 30
4.4 系统高并发优化的实现 30
4.4.1 前端优化 31
4.4.2 缓存优化 32
4.4.3 事务竞争优化 33
4.4.4 使用存储过程 35
第五章 系统测试与分析 36
5.1 测试目的及内容 36
5.2 单元测试 36
5.2.1 用户模块 36
5.2.2 秒杀商品模块 36
5.2.3 订单模块 37
5.3 功能测试 38
5.3.1 注册功能 38
5.3.2 秒杀下单功能 40
5.4 压力测试 41
第六章 总结与展望 45
6.1 总结 45
6.2 展望 45
致 谢 46
参考文献 47
第一章 绪论
1.1 选题的背景和意义
随着网络技术的快速发展,网上购物对我们已经不那么陌生,比起线下购物,电商平台可以提供每天24小时服务,节省来回商场的时间,这带来了极大便利,也因此得到更多人的青睐。数据显示2009年淘宝双十一销售额0.5亿元,而到2019年,淘宝双11在17分时成交额超过571亿元。由此看出参与网购的人越来越多,但商家发布的商品却是有限的,想买到心仪的商品就需要有足够快的购买速度,有时候甚至一秒商品就会售罄,因此这种限时限量的活动又被称为秒杀活动。
秒杀活动作为一种新型网络竞拍方式[1],对商家、消费者和电商平台而言都具有好处。首先对于商家,秒杀活动可以吸引更多关注,带来更大热度,在提高销售量的同时也在一定程度上清理了积压库存。其次对于消费者,在秒杀活动中可以用较以往更低的价格买到所需商品,享受更高的优惠。秒杀活动作为一种促销手段,电商平台可以以此为噱头进行宣传吸引更多用户保证平台的流量,提高平台的总销售额。秒杀活动在多方都带来好处的同时还拉动了经济增长,在近几年受到了更高的关注。
但秒杀活动中商品都是限时限量销售的,往往在活动开启后的几秒内就被售罄,并且参与秒杀活动的人数是不可预知的,因此在秒杀活动开启的前几秒访问流量会达到一个高点,对于电商平台而言就需要有很好的高并发性才能支持活动的顺利进行,在此背景下,专门支持秒杀业务的高并发秒杀系统应运而生。
1.2 国内外研究现状
秒杀系统作为一个商家和消费者交互的平台,消费者可以通过秒杀系统低价购买到自己所需的商品,商家可以通过秒杀系统发布秒杀活动为自己带来更大热度的同时快速清除积压库存。基于秒杀活动的诸多好处,国内外越来越多的电商平台开始发起秒杀活动,比如国内的京东淘宝,国外的亚马逊都推出了相应活动。但因为秒杀活动的特殊性,比如在短时间内并发访问量大,会给网站带来很大冲击等,在设计实现秒杀业务时不仅需要满足秒杀商品的功能,更要满足高并发的需求,让消费者有更良好的购买体验。但由于秒杀开启时瞬时流量过大给服务器造成太大的负载压力,现在很多电商平台还是会出现系统卡死或页面加载失败的问题。
为了解决秒杀开启时系统不响应的问题,现在很多电商平台系统会采用将秒杀系统独立部署,与电商平台网站隔离开;实现网站页面内容静态化,降低各服务器负载压力;采用异步处理模式来提高系统并发量等方法,这些技术[2]都在一定程度上提高了系统的高并发性和高可用性。但是尽管很多电商平台都对系统秒杀功能进行了优化,却还是很难保证每次秒杀活动都可以给所有消费者带来良好的秒杀体验。
1.3 本文结构
本文共六个章节,每个章节具体内容如下:
第一章是绪论,主要介绍了面向高并发秒杀系统的研究背景与意义,国内外关于此方向的研究现状。
第二章是开发环境和相关技术研究,主要探讨了面向高并发秒杀系统的技术要点,并对关键技术进行分析。
第三章是对高并发秒杀系统的需求分析和系统设计,描述了整体需求、整体设计和详细设计。
第四章是对高并发秒杀系统的实现,详细描述了分模块进行的设计与实现。
第五章是对高并发秒杀系统的测试与分析,对高并发秒杀系统进行了单元测试、功能测试和压力测试,并对高并发秒杀系统进行相应的分析评估。
第六章是总结与展望,对论文期间的工作进行总结,并展望未来发展。
后面是致谢和相关的参考文献。
第二章 开发环境与相关技术研究
2.1 开发环境
(1)操作系统:Windows 10操作系统
(2)数据库:MySQL Server5.5.58
(3)开发工具包及软件:JDK Version jdk1.8和IntelliJ IDEA 2018
(4)系统服务器:Tomcat apache-tomcat-7.0.94
(5)浏览器:IE7.0及以上版本
2.2 相关技术研究
2.2.1 技术概述
在开发一个系统前,首先要明确系统应具有的功能,而为了能更好地实现一个系统的功能,就要选取合适的开发技术来满足系统的需求。对于一个系统来讲,选择好的开发技术就如同在烹饪时拥有好的原材料,是一件让系统开发事半功倍的事情。因此在进行技术选型之前,先对系统进行分析,再通过了解不同的技术选取最合适的进行系统的设计与实现。
基于高并发秒杀系统是一个在浏览器实现系统功能,在服务器实现主要事务逻辑的网上秒杀购物系统,在设计系统时选用了B/S架构。消费者通过浏览器的界面向服务器发送请求,服务器对接收到的请求进行处理,包括对数据库的访问操作和对应用程序的执行操作等,最后将处理完毕的结果返回给浏览器,消费者就能得到相应的响应结果。B/S三层架构示意图如图2.1所示。
图2.1 B/S三层架构示意图
整个系统的搭建使用了现在很流行的SSM框架,国内很多大型网站例如阿里巴巴、京东和搜狐等都以此为常用框架,前端的实现采用的是Bootstrap框架,因为使用Bootstrap框架可以简单灵活地进行web界面的搭建,让web开发变得更迅速,前端实现还涉及系统的交互设计、JQuery的一些插件使用等。前端浏览器和后端服务器的交互技术选择了RESTful[3]接口。秒杀系统最重要的系统功能就是实现秒杀业务,而在秒杀业务的优化中主要采用了CDN缓存技术和Redis缓存技术。下面将对在高并发秒杀系统开发中使用到的关键技术作更为详细的讲解。
2.2.2 SSM框架
SSM框架是由Spring、SpringMVC和MyBatis三个易于使用、轻量级并且代码侵入性低的框架集合而成、经常作为web项目框架的适用于各种应用系统搭建的框架集。接下来分别介绍Spring、SpringMVC和MyBatis这三个框架。
2.2.2.1 Spring
Spring框架[4]是一个为解决企业应用程序开发过程过于复杂而创建的轻量级开源框架,其主要优势在于实现了分层架构。分层架构包括七个模块,其中每个模块可以在系统中单独存在,也可以和其余一个或多个模块联合存在。
核心容器是Spring中提供基本功能的模块,包括控制反转(IOC)和依赖注入(DI)。Spring框架在系统中不依赖于应用服务器,它通过控制反转实现对组件的控制,通过依赖注入降低组件之间的耦合度,这就实现了让Spring容器帮我们完成创建对象的工作,而不再需要我们自己手动创建。面向切面编程的功能通过Spring AOP模块集成到了Spring框架中,它将应用程序的业务逻辑和日志、安全和事务结合使用,用此编程技术编写实现的系统是松散耦合的。
2.2.2.2 MVC
MVC架构[5]是一种软件设计模式,它在系统中实现了将视图和数据分离,将视图与控制层逻辑分离。在这种特点下MVC架构实现了系统的模块化,其中视图负责系统显示,模型负责保存系统数据即业务方面的逻辑,控制层负责响应用户请求并决定使用的数据和视图。这种架构使整个系统是低耦合高重用的。具体的MVC体系结构如图2.2所示。
请支付后下载全文,论文总字数:26036字
相关图片展示: