项目框架搭建
1. SpringBoot环境搭建
2. 集成Thymeleaf,RespBean
3. MyBatis
分布式会话
1. 用户登录
a. 设计数据库
b. 明文密码二次MD5加密(数据库中存储一次加密后密码)
c. 参数校验+全局异常处理(RespBean)
2. 共享Session
a. SpringSession
b. Redis
功能开发
1. 商品列表
2. 商品详情
3. 秒杀
4. 订单详情
系统压测
1. JMeter
2. 自定义变量模拟多用户
3. JMeter命令行的使用
4. 正式压测
a. 商品列表
b. 秒杀
页面优化
1. 页面缓存+URL缓存+对象缓存(Redis)
2. 页面静态化,前后端分离(把静态页面直接缓存到用户的浏览器端,所需要的数据从服务端接口动态获取)
3. 静态资源优化
4. CDN优化(全称是Content Delivery Network,即内容分发网络,将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得所需的内容)
接口优化
1. Redis预减库存减少数据库的访问
2. 内存标记减少Redis的访问(当redis中库存为0,在内存中把map对应goodsid的库存为空状态设置为true)
3. RabbitMQ异步下单
a. SpringBoot整合RabbitMQ
b. 交换机
安全优化
1. 秒杀接口地址隐藏(防止明文传输被直接获得接口,秒杀先跳转到获得商品地址接口的接口再转向真正接口)
2. 验证码(防止脚本)
3. 接口防刷(防止短时间多次连接接口)
依赖使用
- Lombok(通过注解的方式减少get,set方法,构造方法)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<optional>true</optional>
</dependency>
- thymeleaf(Thymeleaf是一个模板引擎,主要用于编写动态页面,把model中的数据渲染到html中,因此其语法主要是如何解析model中的数据)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
- validation(validation作为jQuery的一个插件用于表单验证,如手机号码校验)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
- AMQP(AMQP是一个进程间传递异步消息的网络协议,Broker使用的RabbitMQ,传数据时将数据转为json格式)