基于 spring + spring MVC + mybatis 的高并发秒杀项目
此篇博客记录 慕课网 李奕锋老师 java高并发秒杀API系列课程
项目
项目地址:https://github.com/zhaiaxin/SecKill
Step 1
- 创建项目
- 设计数据库
-
mybatis
以及spring-dao
配置 -
Dao
层测试
业务分析
1、秒杀系统业务流程
2、用户针对库存业务分析(需要事务机制去确保数据落地)
3、购买行为
难点分析
1、事务(其中 update
会有很多用户同时竞争,即很高的并发量)
2、行级锁 (确保sql语句执行时,其他等待)
3、秒杀功能
代码部分
1、Maven创建项目: mvn archetype:generate -DgroupId=org.seckill -DartifactId=seckill -DarchetypeArtifactId=maven-archetype-webapp
2、用 idea
打开项目,open as project
Step 2
- 日志
logback
创建 -
spring-service
配置 -
Service
层测试
框架学习
1、spring
依赖注入
2、此项目业务对象依赖图
3、依赖注入的3种方式和场景
Step 3
-
BootStrap
设计页面 -
spring-web
配置 - 实现
Controler
层
框架学习
1、spring
依赖注入
2、此项目业务对象依赖图
3、依赖注入的3种方式和场景
重点知识
1、Restful
规范
2、此项目 URL
设计
3、springMVC
运行流程
4、注射映射技巧
5、请求方法细节处理
业务部分
1、前端页面流程
2、前端交互设计
Step 4
- 使用
Redis
缓存 - 定义存储过程(mysql函数)
项目优化
1、静态资源优化
2、秒杀地址接口优化
3、用java处理秒杀操作的瓶颈
4、总结