发表于: 2018-03-18 23:16:27
1 467
一、今天完成的事情
1、完成了压测的任务,并统计之后制成压测报告
WEB配置:单tomcat,直接访问8080端口,缓存测量时只打开需要测量的缓存软件
类型 | 90%line | 吞吐量 | ||
接口 | JSP | JSON | JSP | JSON |
无缓存 | 1015 | 215 | 36 | 72 |
memcached | 930 | 160 | 28.2 | 75.8 |
redis | 950 | 157 | 25.6 | 86 |
WEB配置:双tomcat,分别开放8080、8081端口,使用nginx负载均衡直接接入localhost,缓存情况同上
类型 | 90%line | 吞吐量 | ||
接口 | JSP | JSON | JSP | JSON |
无缓存 | 995 | 135 | 29 | 96 |
memcached | 884 | 101 | 36 | 152 |
redis | 900 | 84 | 33 | 179 |
在尽量保持环境相同的情况下使用单一变量法统计成表
从表中大致可以看出,缓存的作用还是比较明显的,负载均衡对高并发场景下的性能提升也有不错的表现
2、模拟缓存穿透,并想办法预防这种情况的发生
缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。
预防策略:如果一个查询返回的数据为空(不管是数 据不存在,还是系统故障),我们仍然把这个空结果进行缓存
首先用压测不存在的id对应的学生信息,模拟缓存穿透
然后编写防止缓存穿透的逻辑
编写查询单个学生的接口,用json来测比较方便
用jmeter压测后生成日志,表示策略成功
3、借鉴网上的教程编写了一个七牛云的工具类,明天再搞定阿里云的工具类就可以用里面封装好的方法进行数据迁移了
二、明天计划完成的事情
1、完成数据迁移,提交任务七
2、小课堂做准备
三、遇到的问题
暂无
四、收获
如上所述
task6开始时间:2018.02.07
预计demo时间:2018.03.03
需要延期
预计延期时间:2018.03.08
原因:有空做好压测报告就提交任务六
http://task.ptteng.com/zentao/project-task-488-unclosed.htm
评论