慕课网《Java秒杀系统方案优化 高性能高并发实战》笔记
总览
第一章 项目框架搭建
SpringBoot环境搭建
虽然在一些项目中写过html+css+js,用过Spring,SpringMVC, Mybatis,但基本都是照着别人的项目抄,只知道这个可以这么用,但不知道为什么可以这么用.所以想通过这个知其所以然
集成Thymeleaf, Result结果封装
Thymeleaf
是SpringBoot中常用的页面模板,它替代了传统SpringMVC中的JSP
Result
自己实现接口对结果进行JSON序列化进行封装
集成Mybatis+Druid
Mybatis
用于连接数据库
Druid
是阿里巴巴开发的数据库连接池
集成Jedis+Redis安装+通用缓冲key封装
Jedis
菜鸡般的我还去搜了Jedis是啥玩意
Redis
数据缓存(现在招聘要求必写的),基础知识了解
第二章 实现登录功能
数据库设计
明文密码两次MD5处理
为什么要两次MD5?->安全
JSR303参数检验+全局异常处理器
实现一个参数校验器,全局异常处理器
分布式Session
因为现在的服务基本都是分布式的
第三章 实现秒杀功能
数据库设计
商品列表页
商品详情页
订单详情页
第四章 JMeter压测
先实现基本的业务逻辑,再进一步对系统进行压测,发现问题,解决问题
JMeter入门
自定义变量模拟多用户
JMeter命令行使用
SpringBoot打war包
第五章 页面优化技术
页面优化缓存+URL缓存+对象缓存
加缓冲->减少对数据库的访问->提高并发
页面静态化,前后端分离
静态资源优化
CSS,JS优化
CDN优化
第六章 接口优化
Redis预减库存减少数据库访问
内存标记减少Redis访问
RabbitMQ队列缓存,异步下单,增强用户体验
RabbitMQ安装与SpringBoot集成
访问Nginx水平扩展
压测
第七章 安全优化
秒杀接口地址隐藏
防止脚本恶意攻击
数学公式验证码
①防止脚本
②用户在填写验证码时,也拉长了时间,减少并发
接口防刷
限流