发表于: 2017-10-11 20:58:45
2 860
今天完成的事情:
先说结论
今天一头栽在了测试上面,导致忙活了一天什么东西都没做出来
1.更换测试页面
去了解了官网教程中“为什么要压测”,看到一个压测例子
https://help.aliyun.com/document_detail/29322.html
里面的网站初始压测值很糟糕,原因是前端加载时间太长,于是我去测试了下我的服务器的前端加载
有点糟糕,而且我无法优化,于是去写了个没有前端组件的页面:
压测设置:
压测结果:
结论是:没什么区别,测了好几次,波动太大了,有的时候是有缓存的快,有的时候是无缓存的快,也有两个几乎是一样的情况
开始怀疑代码:1.是否没缓存上?2.缓存上了是否还是从数据库取出?
验证1:
结论:缓存中是有数据的
验证2:
public List<Student> selectAllStudent() {
List<Student> students = (List<Student>) xMemcachedUtil.getCache("students");
if (students != null) {
logger.error("使用缓存");
return students;
}
logger.error("使用数据库");
List<Student> studentsFromDB = studentDao.selectAllStudent();
xMemcachedUtil.addCache("students",3600,studentsFromDB);
return studentsFromDB;
}
打印日志后得到结果:
结论:除了第一次访问,其他全部从缓存中取出
说好的使用缓存网站性能飙升呢……是我的理解出错了吗……
然后先把这个问题放在一边,写json接口,又出错了,然而此时已经晚上九点了……
看似一天一直在干活,回头一看,自己什么都没干
2.师兄说代码有点冗余,写个XMemcached的工具类
但是这个东西要导入bean,在静态方法中不能导入bean
按照百度得来的方法1:
public void init() {
xMemcachedUtil = this;
xMemcachedUtil.memcachedClient = this.memcachedClient;
xMemcachedUtil.memcachedClientBuilder = this.memcachedClientBuilder;
}
失败,空指针异常,修修改改也不行,放弃了
方法2:在静态变量中加载Spring的XML文件,用getBean方法
虽然容易实现,但是这样每使用一次都要加载xml,觉得这个方法不太好,就没用
方法3:不使用静态方法了,就当成一个bean来用吧
@Component
public class XMemcachedUtil {
引入
@Resource
private XMemcachedUtil xMemcachedUtil;
效果:
List<Excellence> excellences = (List<Excellence>) xMemcachedUtil.getCache("excellence");
if (excellences != null) {
return excellences;
}
List<Excellence> excellencesFromDB = excellenceDao.selectExcellenceByName();
xMemcachedUtil.addCache("excellence", 3600, excellencesFromDB);
return excellencesFromDB;
明天计划的事情:
不敢吹牛了,完成压测json和JSP,可以部署完新的服务器还有完成负载均衡的话那就更好
遇到的问题:
1.测试问题,韦杰师兄说我的网站性能不好,用了缓存也不会有很大的提升
2.对于有bean引入的工具类封装,没有找到很好的方法,放弃使用静态方法,用@Component引入使用
3.Json接口写的不对,明天解决
收获:
1.封装XMemcache,去除冗余代码
2.对测试更了解了点,测试中后端和前端同时要优化,但是对缓存对网站的性能的影响产生了怀疑
进度:
任务6开始时间:2017.10.08
预计demo时间:2017.10.16
延期风险:无
禅道
http://task.ptteng.com/zentao/project-task-350.html
评论