8000 GitHub - Wxin96/FlashSale
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Wxin96/FlashSale

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlashSale

1.JSR303校验

1.1 导包

1.2 常用注解

5. 页面优化技术

5.1 页面缓存 + URL缓存 + 对象缓存

5.1.1 页面缓存

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

5.1.2 URL缓存

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

与页面缓存的不同,URL缓存带有参数

5.1.3 对象缓存

更细粒度的缓存

特点:

  • 永久缓存
  • 修改时,缓存需要修改,避免出现缓存不一致。

5.2 页面静态化,前后端分离

  1. 常用技术AngularJS、Vue.js
  2. 优点:利用浏览器缓存

5.3 静态资源优化

5.3.1 JS/CSS压缩,减少流量

5.3.2 多个JS/CSS组合,减少连接数

5.3.3 CDN就近访问

5.4 CDN优化

5.5 问题:用户重复秒杀

秒杀表的user_id和goods_id,设置唯一索引

6. 接口优化

6.1 Redis预减库存减少数据库访问

思路:减少数据库访问

  1. 系统初始化,把商品库存数量加载到 Redis
  2. 收到请求,Redis预见库存,库存不足,直接返回,否则进入3
  3. 请求入队,立即返回排队中
  4. 请求出队,生成订单,减少库存
  5. 客户端轮询,是否秒杀成功

6.2 内存标记减少Redis访问

6.3 请求先入队缓冲,异步下单,增强用户体验

6.4 RabbitMQ安装与Spring Boot继承

6.5 Nginx水平扩展

7. 安全优化

7.1 秒杀接口地址隐藏

思路:秒杀开始之前,先去请求接口获取秒杀地址

  1. 接口改造,带上PathVariable参数
  2. 添加生成地址的接口
  3. 秒杀收到请求,先验证PathVariable

7.2 数学公式验证码

思路:点击秒杀之前,先输入验证码,分散用户的请求

  1. 添加验证码的接口
  2. 在获取验证秒杀路径的时候,验证验证码
  3. ScriptEngine使用

7.3 接口限流防刷

7.4

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0