1. 数据库访问压力:抢购活动中大量请求过来时我们是要去判断商品是不是够的,每次抢购时主要压力其中一点是在于对产品数量的校验,如果完全放在数据库,数据库压力大。活动预加载,数据加热,放在缓存Redis中,用户请求过来时通过缓存告诉他们产品对应的数量和状态,这样就减小了数据库的访问压力。3.拟采用的系统技术
系统框架:vue
前端技术:nodejsScript、jQuery、BootStrap
数据库技术:MySQL
中间件技术:Redis、MQ
以上技术使用的特性如下:
(1)nodejsScript、jQuery、BootStrap的前端页面:保证页面访问能够兼容且页面整齐美观,具有观赏性。
(2)B/S架构:成本低、维护方便、分布性强、开发简单,不需要安装任何专门的软件、只需要浏览器即可访问操作。
(3)MySQL:数据存储,Redis:缓存热点数据
MQ:对于突然到来的大量请求,您可以配置流控规则,以稳定的速度逐步处理这些请求,起到“削峰填谷”的效果,从而避免流量突刺造成系统负载过高。
三、拟解决的关键问题
2. 抢购活动:将活动ID+用户ID维护到缓存Redis中(拦截统一用户对同一抢购产品的多次抢购行为),判断是否是第一次抢购操作,如果不是则结束抢购,如果是则进行后续操作;判断缓存中活动的商品是否被抢空,如果不是则结束抢购,如果是则将缓存商品数量减1,数据库商品数量减1,SnowFlake雪花算法生成订单号,订单处理MQ。二、研究内容及拟采用的技术方案本次开发一套基于vue的秒杀系统,管理员功能有个人中心,用户管理,商品类型管理,商品信息管理,订单管理,系统管理。用户可以注册登录,查看商品信息,对秒杀商品购买,秒杀活动结束的商品不可以购买,可以可以查看订单。基于vue的秒杀系统服务端用nodejs开发,用vue框架开发的网站后台,数据库用到了MySQL数据库作为数据的存储。这样就让用户用着方便快捷,都通过同一个后台进行业务处理,而后台又可以根据并发量做好部署,用硬件和软件进行协作,满足于数据的交互式处理,让用户的数据存储更安全,得到数据更方便。
1.系统结构
本系统基并采用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,查询最新的的订单信息,进行订单支付,是否支付成功,将订单状态修改为支付完成。
目 录
摘 要 I
目 录 III
第1章 绪论 1
1.1 研究背景 1
1.2 研究现状 1
1.3 目的和意义 1
1.4 论文研究内容 2
第2章 程序开发技术 3
2.1 MYSQL数据库 3
2.2 nodejs语言 3
2.3 vue框架简介 4
第3章 系统分析 5
3.1可行性分析 5
3.1.1技术可行性分析 5
3.1.2经济可行性分析 5
3.1.3操作可行性分析 6
3.2系统运行环境 6
3.3系统流程分析 6
第4章 系统设计 10
4.1 系统设计的原则 10
4.2 功能结构设计 10
4.3 数据库设计 11
4.3.1 数据库E-R图 11
4.3.2 数据库表结构 13
第5章 系统实现 17
5.1管理员功能实现 17
5.1.1 用户管理 17
5.1.2 商品类型管理 17
5.1.3 商品信息管理 18
5.1.4 订单管理 19
5.2 用户功能实现 19
5.2.1 商品信息 19
5.2.2 购物车 20
5.2.3 确认下单 21
5.2.4 我的收藏 21
第6章 系统测试 23
6.1系统测试方法 23
6.2 系统测试分析 24
结 论 25
致 谢 26
参考文献 27