Spring Boot秒杀项目实战教学


在这里插入图片描述

1.项目架构

1.架构搭建

1.Spring Boot环境搭建

idea中新建spring boot的project,然后在主函数类同级菜单下创建service,dao,controller等。主函数中的@SpringBootApplication会自动扫描同级菜单的请求。

2.集成Thymeleaf,Result结果封装

3.集成Mybatis+Druid

4.集成Jedis+Redis+通用缓存Key封装

2.实现登录功能

1.数据库设计

2.明文密码两次MD5处理

3.JSR303参数校验+全局异常处理器

4.分布式Session

3.实现秒杀功能

1.数据库设计

2.商品列表页

3.商品详细页

4.订单详细页

4.JMeter压测

1.JMeter入门

2.自定义变量模拟多用户

3.JMeter命令行使用

4.Spring Boot打war包、

5.页面优化

1.页面缓存+URL缓存+对象缓存

1.取缓存
2.手动渲染模板
3.结果输出

2.页面静态化,前后端分离

常用技术AngularJS,Vue.js
所有页面都是纯html,通过ajax渲染页面
优点:利用浏览器缓存
在这里插入图片描述

3.静态资源优化

4.CDN优化

6.接口优化

思路:减少数据库访问。
1.系统初始化,把商品库存加载到redis
2.收到请求,redis减库存,库存不足直接返回,否则进入3
3.请求入队,立即进入“排队中”状态
4.请求出队,生成订单,减少库存
5.客户端轮询,是否秒杀成功

1.Redis预减库存减少数据库访问

2.内存标记减少Redis访问

3.RabbitMQ队列缓存,异步下单,增强用户体验

4.RabbitMQ与Spring Boot集成

5.访问Nginx水平扩展

6.压测

7.安全优化

1.秒杀接口隐藏

2.数学公式验证码

点秒杀前,输入验证码,分散用户请求
1.添加生成验证码的接口
2.获取秒杀路径的时候,验证验证码
3.ScriptEnginr的使用

3.接口防范

思路:在redis设置计时器,如一分钟内一个用户只能访问一次,防止无限刷新

RabbitMQ

先cmd进入C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.6\sbin,再输入指令rabbitmq -plugins.bat enable rabbitmq_management
在这里插入图片描述

nginx

官网下载压缩包,解压后直接运行nginx.exe

过程

@EnableScheduling //自动任务调度
@Component组件类,ioc扫描后会自动加载,这两个组合起来用就可以自动执行方法
@Scheduled(cron = “* * * * * ?”)按一定时间执行

猜你喜欢

转载自blog.csdn.net/weixin_40485391/article/details/107722603
今日推荐