秒杀系统优化篇

秒杀优化点

  • 页面的动态化显示
  • jmeter的压测
    • 优化点1:**静态数据优化之redis缓存**
    • 优化点2:静态化技术
    • 优化点3:静态化技术

页面的动态化显示

通过底层mapper->dao->service->controller->view之后,将原本只能将静态页面复制到资源文件夹下进行访问变成了通过http请求和参数进行访问各种页面,即页面的动态化访问

jmeter的压测

在设定了jmeter测试参数后,进行了单一页面的测试,结果达到:
17ms最低,13s最高,吞吐量175.5/s的测试结果
在这里插入图片描述

于是进行用户数据的模拟达到更为接近实际的测试结果:
结果见下图
18ms最低,9s最高,吞吐量150.6/s的测试结果这里模拟的是100个用户每个用户发起100个请求即模拟万次请求

优化点1:静态数据优化之redis缓存

1.旨在降低与数据库的优化,将静态数据进行缓存,之后访问将会很快
2.@EnableCaching//开启声明式缓存,利用注解控制缓存的读写
@Cacheable(value = “goods”,key="#goodsId")//key:goods::1//第一次访问的时候将方法的结果放入缓 存,第二次直接从缓存中提取数据
3.reids的配置:
秒杀系统优化篇_第1张图片
4.缓存结果
在这里插入图片描述
结果见上图
6ms最低,314ms最高,吞吐量665.2/s的测试结果

优化点2:静态化技术

1.将动态页面生成html静态化页面
db->静态化程序经过freemarker生成html->nginx->浏览器->用户
2.nginx本身内置缓存,第一次会慢一些,第二次就会快
在这里插入图片描述
结果见上图
1ms最低,2s最高,吞吐量1196.3/s的测试结果
但是静态化之后,难以更改数据

优化点3:静态化技术

1.使用任务调度:每5分钟进行页面的静态化处理
2.动静数据分离技术:静态页面效率固然高,但是往往页面中也存在动态数据,就肯定不能对这种数据进行静态化处理
浏览器->nginx(html发起ajax请求,通过nginx向后端发起请求填充到html)->tomcat->db
通过配置nginx文件来进行动态数据处理与访问

你可能感兴趣的:(秒杀优化前期,java)