欢迎来到天天文库
浏览记录
ID:36622125
大小:5.27 MB
页数:15页
时间:2019-05-13
《基于AOP调用跟踪组件实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于AOP的调用跟踪组件实现(讨论稿)文件编号:SF-100-078基于AOP的调用跟踪组件实现审核:日期:批准:日期:版本号A-0密级内部Copyright©2014福富软件版权所有Page15of15基于AOP的调用跟踪组件实现(讨论稿)文件编号:SF-100-078修改履历版本号日期作者修订要点A-02014-11-20陈知,饶庆伟新作成Copyright©2014福富软件版权所有Page15of15基于AOP的调用跟踪组件实现(讨论稿)文件编号:SF-100-078目录1前言51.1背景52AOP介绍62.1应用范围62.2实现方式及优缺点6
2、2.3基本概念63调用轨迹跟踪实现73.1调用轨迹组件项目命名73.2CRM技术现状73.3应用需求73.4解决方案83.5拓扑结构83.6技术方案及埋点93.7采集数据定义93.8组件结构103.8.1数据采集组件103.8.2调用轨迹服务组件113.9环绕增强实现123.10异常增强实现123.11CRM切入点123.11.1业务逻辑切入点123.11.2异常切入点133.11.3规则切入点133.12调用轨迹注入133.13轨迹数据查询144使用案例14Copyright©2014福富软件版权所有Page15of15基于AOP的调用跟踪组件实现
3、(讨论稿)文件编号:SF-100-0785优缺点146非功能性要求147当前进展148后续计划14Copyright©2014福富软件版权所有Page15of15基于AOP的调用跟踪组件实现(讨论稿)文件编号:SF-100-0781前言1.1背景多样的需求,复杂的业务处理,庞大的数据关系,使得现有的CRM系代码快速的增长,而开发和维护难度不断的增大,这些困难主要体现在业务流程复杂,业务代码分散,数据关系的多样上。当业务和代码异常时,问题定位困难,CRM的特点,往往一次业务过程的数据造成不可逆的数据还原,研发人员大部分只能通过阅读代码,全程业务单步跟踪
4、来查找问题,效率低下。若问题的描述能够获取到业务执行的过程及过程中使用的参数数据,那么可以根据这些信息,能够快速的定位到问题的代码,通过相关的开发工具,比如单元测试方式,能够快速的解决问题,很大的提高了开发的效率。当性能问题出现时,一次业务执行的过程,涉及到大量的API函数调用,要怎样才能从大量的API中定位到造成了整个业务性能执行效率问题函数,传统的方式是通过阅读和调试代码,往往是定位不到问题,特别是大业务量,大并发的时候。当系统维护人员与研发人员之间的问题沟通时,往往由于双方信息的不对称,造成理解偏差,误解,解决问题费时费力。当问题发生时能够提供
5、有力的数据,减少了沟通的障碍,快速解决问题。在分布式系统下,不断增加的业务节点,如何有效的去跟踪各个业务节点之间的执行关系和执行效率。上述的种种问题依靠传统的开发方式,要想通过阅读代码,调试代码来解决问题,越来越困难。在这个问题背景下,需求一套工具来跟踪系统内容的运行情况,各个API执行的情况,使用的参数,执行的效率,在出现异常情况时候,能够捕获异常时点的现场信息,并能够快速告警。在对外围系统交互过程,需要了解各个交互系统之间的调用关系,各个系统间执行的过程,及执行的效率,当出现问题,可以通过这些跟踪的数据快速分析和定位问题。在现有行业应用环境下,已
6、知google,阿里都有自己的解决方案,goolge的dapperCopyright©2014福富软件版权所有Page15of15基于AOP的调用跟踪组件实现(讨论稿)文件编号:SF-100-078技术,阿里的鹰眼应用都取到比较好的效果,应用技术比较成熟,在这些背景下,结合了CRM现有的系统特点,提出了开发一套适合CRM系统的调用跟踪应用,即基于AOP的调用跟踪组件应用。1AOP介绍AOP为AspectOrientedProgramming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理方式实现程序功能的统一维护的一种技术。AOP也是Act
7、ionOrientedProgramming的缩写,意为:面向切面编程,是函数式编程的一种衍生范型。1.1应用范围面向将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,将它们独立到非业务逻辑的方法中,使得业务逻辑各部分之间的耦合度降低。1.2实现方式及优缺点机制原理优缺点案例静态织入在编译期,切面直接以字节码的形式织入到目标字节码文件中。优点:对系统加载时无性能影响。缺点:灵活性不够。Lombok动态代理在运行期,动态构建目标类的子类,将切面逻辑加入到代理类中。优点:能够获取到运行时类的信息。缺点
8、:影响系统加载性能。SpringJVM方式在类加载前,通过向目标字节码注入相关的实现代码。优点:JVM级,影
此文档下载收益归作者所有