▶【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

 

posted @ 2022-02-07 00:53  淇凌  阅读(164)  评论(0编辑  收藏  举报