发表于: 2017-10-20 21:10:50
1 813
今天完成的事
步骤7
安装resin,这里我有一个问题,难道tomcat不能查看访问db时间吗,这里一定要指定用resin吗
上传压缩包解压即可
进入压缩包到bin目录下
使用命令./resin.sh start打开

.png)
这里有一个问题,上图的watchdog是什么呢?
我一开始还以为打开端口为6600,其实并不是
watchdog是一个独立的程序,用来控制和监视resin服务器
watchdog连续检测Resin服务器的状态,如果其没有反应或者迟钝,将会重启Resin服务器进程
resin的默认端口是8080,因为和默认的tomcat端口是同一个,因此没有修改过tomcat的小伙伴们需要关闭tomcat或者修改两者之一的端口,因为此处我的tomcat端口为9999,故此可以同时运行
.png)

修改nginx的代理端口,改为resin的端口,重启即可代理resin服务器
统计不同ip的个数
awk '{print $2}' /usr/local/nginx/logs/access.log | sort | uniq | wc -l
响应时间
大于0小于0.02毫秒的请求个数
awk '{print $26}' /usr/local/nginx/logs/access.log | awk '{if($1<0.020&&$1>0)print $1}' | wc -l
.png)

因为总共只进行了13次测试,所以基本上每次响应都在0.02毫秒以下
.png)

使用aop计算controller和读取数据库时间
这是util类,切入面
package com.ptteng.util;
import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
@Component
@Aspect
public class LogAdvice {
Logger log = Logger.getLogger(LogAdvice.class);
@Around("execution(* com.ptteng.service.*.*(..))")
public Object stime(ProceedingJoinPoint pj) throws Throwable {
Long begin = new Date().getTime();
Object o = pj.proceed();
Long end = new Date().getTime();
System.out.println(begin + "//////////" + end);
log.info("本次访问db花费时间为" + (end - begin) + "毫秒");
return o;
}
@Around("execution(* com.ptteng.controller.*.*(..))")
public Object ctimeget(ProceedingJoinPoint pj) throws Throwable {
Long begin = new Date().getTime();
Object o = pj.proceed();
Long end = new Date().getTime();
log.info("本次访问controller花费时间为" + (end - begin) + "毫秒");
return o;
}
}
此外还需要在springmvc的配置中开启注解扫描
打开对controller层service层和util的扫描
再加上一句<aop:aspectj-autoproxy />
遇到的问题
访问数据库的时间没显示出来,原因正在查找
明天计划的事
准备trycatch小课堂,给任务3收尾
收获
使用aop对日志做处理
评论