SSM秒杀项⽬(⼀)简介
本次秒杀项⽬是根据慕课⽹的秒杀视频项⽬做的,算是学完SSM后的⼀个实战。
秒杀简介:
电商平台经常做⼀些低价促销活动,吸引了许多顾客进⾏抢购。在同⼀时间开放购买页⾯,⼤量⽤户同时点击购买商品。
秒杀业务特点:
1.同⼀时间⽹站的访问流量瞬间激增;
2.秒杀的商品库存⼀般远远低于访问购买的⽤户数量;
3.秒杀逻辑⼀般就是减库存下订单,这是⼀个原⼦操作。
秒杀系统设计思路:
1.数据库读写是秒杀业务最⼤的瓶颈,相当于磁盘I/O,速度相⽐内存访问慢。尽量将需要频繁访问的数据库中数据加载到内存中;
2.瞬间激增的流量访问会增⼤服务器的压⼒,⽽秒杀商品只有少部分⼈能够购买到。将未能购买到的⽤户流量直接拦截掉,不再进⾏秒杀业务逻辑的处理;
3.增加异步处理功能,将可购买⽤户的请求放⼊消息队列中,服务端根据⾃⼰的业务处理能⼒去处理消息队列中的⽤户请求。
项⽬相关的技术:
Bootstrap、JQuery、Spring、SpringMVC、Mybatis、Redis、Rabbitmq、Mysql
项⽬中的技术运⽤:
Bootstrap构建前端登录页⾯、秒杀商品展⽰页⾯、秒杀商品抢购页⾯、订单页⾯;
JQuery构建登录模块中的表单提交及提交及处理表单后服务端响应的内容(跳转商品列表页⾯)、构建秒杀抢购页⾯倒计时的业务逻辑及点击提交抢购按钮后服务端响应的内容(接收秒杀失败及服务端处理错误信息、跳转订单页⾯);
SSM作为项⽬中的基础,主要负责业务处理逻辑和数据持久化(整个项⽬分为表现层、Controller层、Service层、Dao层);jquery在项目里是干啥的
Redis作为缓存服务器,主要⽤作分布式session和减少数据库频繁访问的压⼒;
Rabbitmq是消息队列,主要负责异步处理订单业务;
Mysql数据库存储本次项⽬中所涉及到的⽤户表(登录信息)、秒杀商品列表(所有秒杀商品)、秒杀商品表(特定秒杀商品的秒杀信息)、⽤户订单(成功购买⽤户与商品的详细信息)、秒杀订单(⽤户id、商品id、订单id)
项⽬模块:
两次MD5登录密码验证、分布式会话、缓存优化、消息队列异步处理请求、页⾯展⽰(登录/商品详情/商品抢购/订单)、接⼝优化