美文网首页
从零搭建项目开发框架-24系统性能监控

从零搭建项目开发框架-24系统性能监控

作者: 孔垂云 | 来源:发表于2017-07-08 22:10 被阅读0次

    系统在初期运行时可能没问题,每个功能都快速响应,但是随着数据量的增多,可能个别功能不能快速响应,但是用户还不好描述具体哪地方慢,这时候就需要通过AOP来进行性能监控,及时发现系统存在的问题。

    @Aspect
    public class PerformanceAspect {
        private static Logger logger = LoggerFactory.getLogger("performanceLog");
    
        @Around("execution (* com.critc.*.*.service.*.*(..))")
        public Object performanceIterceptor(ProceedingJoinPoint joinPoint) throws Throwable {
            Object result = null;
            long l = System.currentTimeMillis();
            result = joinPoint.proceed();
            long consume = System.currentTimeMillis() - l;
            if (consume > 3000) {
                //记录系统操作较慢的service处理过程
                logger.info("实体类:" + joinPoint.getTarget());
                logger.info("方法名:" + joinPoint.getSignature().getName());
                // 得到被拦截方法参数,并打印
                Object[] args = joinPoint.getArgs();
                for (int i = 0; i < args.length; i++) {
                    logger.info("方法参数:" + i + " -- " + args[i]);
                }
                logger.info("用时:" + consume);
            }
            return result;
        }
    }
    

    applicationContext.xml增加配置

      <!-- 系统性能监控切面-->
        <bean id="performanceAspect" class="com.critc.plat.core.aop.PerformanceAspect"/>
    

    这个aop的原理是@Around环绕型切面,开始时记录当前时间,结束时把结束时间-开始时间,如果超过3000毫秒,则记录对应的日志。

    这样就可以监控所有service层的操作时间,如果操作时间超过3秒,记录下当前类名、方法名及所有参数,便于追溯问题,可以进行后续的性能调优,比如加索引、优化数据存储等等。

    源码下载

    本阶段详细源码

    相关文章

      网友评论

          本文标题:从零搭建项目开发框架-24系统性能监控

          本文链接:https://www.haomeiwen.com/subject/izwocxtx.html