▶【SecKill】秒杀系统
▶【SecKill】秒杀系统
一、技术点介绍
1、前端:HTML+jQuery
Thymeleaf:服务端的模板,类似于JSP
2、中间件:
(1)实现异步操作:RabbitMQ
(2)缓存:Redis(分布式缓存Redis之持久化:服务器重启之后,可以保持数据不丢失)
(3)阿里巴巴开源的连接池:Druid(特性:监控数据库连接池里的连接<最大连接数、最长时间>)
3、后端
(1)微服务框架:SpringBoot
(2)访问数据库:MyBatis
(3)服务端的验证框架:JSR303
二、秒杀功能
1、分布式会话:SpringBoot开发环境
2、商品列表页
3、商品详情页
4、订单详情页
5、系统压测:高并发问题 → 多层次多粒度缓存+消息队列异步+服务器分布式部署
6、缓存优化:减少对数据库的访问
7、消息队列
8、接口安全:保证系统安全、交易公平 → 限流防刷、图形验证码、接口地址隐藏
三、教学框架
U1 项目框架搭建
1、SpringBoot环境搭建
2、集成Thymeleaf(页面模板=JSP),Result结果封装
3、集成Mybatis(数据库)+Druid
4、集成Jedis+Redis安装+通用缓存Key封装
U2 实现登录功能
1、数据库设计
2、明文密码两次MD5处理:安全
3、JSR303参数检验+全局异常处理器
4、分布式Session
U3 实现秒杀功能
1、数据库设计
2、商品列表页
3、商品详情页
4、订单详情页
U4 JMeter压测
1、JMeter入门
2、自定义变量模拟多用户
3、JMeter命令行使用
4、Spring Boot打Jwar包
U5 页面优化技术
1、页面缓存+URL缓存+对象缓存
2、页面静态化,前后端分离
3、静态资源优化
4、CDN优化
U6 接口优化
1、Redis预减库存减少数据库访问
2、内存标记减少Redis访问
3、RabbitMQ队列缓冲,异步下单,增强用户体验
4、RabbitMQ安装与Spring Boot集成
5、访问Nginx水平扩展
6、压测
U7 安全优化:防止机器人刷接口
1、秒杀接口地址隐藏:秒杀开始前,无真正的秒杀地址
2、数学公式验证码
3、接口防刷
——————
Git代码:https://github.com/1105916774/miaosha_1
博客园:https://www.cnblogs.com/kirin1105916774/p/15866744.html