基于Annotation使用的调用链的实现系统技术方案

技术编号:14397463 阅读:40 留言:0更新日期:2017-01-11 11:20
本发明专利技术公开了一种基于Annotation使用的调用链的实现系统,该系统包括应用容器层、信息传输层、信息存储层、信息处理层、信息展现层。本系统提供注解方式的调用链标记,采用字节码增强技术干预发起RPC的代码以此来自动处理标签信息,在类装载时通过介入应用代码为分布式调用和性能信息注入必要的跟踪代码来传输跟踪信息,采用插件的方式对主流RPC框架进行封装,屏蔽各个RPC框架对TraceHeader信息的载入和提取。通过本发明专利技术能够实现对N层架构以及集群部署的应用服务间的调用事务追踪并形成调用链信息快捷定位性能瓶颈以及错误环节详情等。

【技术实现步骤摘要】

本专利技术涉及互联网
,尤其涉及一种基于Annotation使用的调用链的实现系统
技术介绍
由于电信系统的交易数据量非常庞大、应用服务多且应用服务大多采用集群部署方案,要将功能和服务有机结合,导致更加复杂的软件栈组合。系统的复杂度因此提升。系统越复杂,越难解决问题,例如系统失败或者性能问题。另一个问题是仅仅分析单个组件很难看到大局,当发生一个低可见度的问题时,系统复杂度越高,就需要更长的时间来查找原因。最糟糕的是,某些情况下甚至可能无法查找出来。
技术实现思路
本专利技术的目的是为了克服现有技术的缺陷,提供一种基于Annotation使用的调用链的实现系统,从而实现对N层架构以及集群部署的应用服务间的调用事务追踪并形成调用链信息快捷定位性能瓶颈以及错误环节详情。为实现上述目的,本专利技术提供了一种基于Annotation使用的调用链的实现系统,该系统包括应用容器层、信息传输层、信息存储层、信息处理层、信息展现层;其中,应用容器层:对象为应用部署所在的容器,通过代理模块采用javaagent方式生成服务调用的调用链等信息,并由代理模块将生成的调用链信息发送消息队列。信息传输层:包括消息队列和收集器;其采用消息队列来接收代理模块发送的调用链等信息,收集器从消息队列中获取数据并进行持久化到存储介质。信息存储层:即存储介质,用来集中存储从各个应用收集的调用链等信息。信息处理层:包括分析器、预处理和告警;其中,分析器,其从存储介质或者消息队列拿取调用链等信息进行信息筛选分类,能够同时触发告警。预处理,其通过对分析后的数据进行预处理得到各个维度的可用数据结构,能够同时触发告警。告警,其采用脚本方式结合系统数据进行动态告警触发设置并执行告警。信息展现层:以友好直观的UI展现系统各维度的调用以及性能信息。进一步地,该系统为一个大型分布式系统服务的n层架构跟踪平台。进一步地,该系统跟踪单次请求调用中的分布式请求,基于googleDapper,跟踪数据的核心数据结构TraceHeader由SpanId,ParentSpanId,和TraceId以及其他信息组层。进一步地,该系统提供注解方式的调用链标记,在系统运行期间精确的对单次事务请求添加过注解的方法生成跟踪信息。进一步地,该系统采用字节码增强技术干预发起RPC的代码以此来自动处理标签信息,在类装载时通过介入应用代码为分布式调用和性能信息注入必要的跟踪代码来传输跟踪信息。进一步地,该系统采用插件的方式对主流RPC框架进行封装,屏蔽各个RPC框架对TraceHeader信息的载入和提取。本专利技术技术方案带来的有益效果:第一,采用本专利技术,能够实现对N层架构以及集群部署的应用服务间的调用事务追踪并形成调用链信息快捷定位性能瓶颈以及错误环节详情。第二,通过本专利技术agent方式能够无侵入的加入调用链追踪能力。第三,通过本专利技术注解方式的引入能够精确的采集分布式请求中某层方法的调用信息追踪。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本专利技术的系统结构图;图2是本专利技术的TraceId行为调用示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示为本专利技术系统的整体结构图。整个结构分为五层结构:应用容器层、信息传输层、信息存储层、信息处理层、信息展现层。应用容器层:对象为应用部署所在的容器,通过代理模块采用javaagent方式生成服务调用的调用链等信息,并由代理模块将生成的调用链信息发送消息队列。信息传输层:包括消息队列和收集器。其采用消息队列来接收代理模块发送的调用链等信息,收集器从消息队列中获取数据并进行持久化到存储介质。信息存储层:即存储介质,用来集中存储从各个应用收集的调用链等信息。信息处理层:包括分析器、预处理和告警。其中,分析器从存储介质或者消息队列拿取调用链等信息进行信息筛选分类,能够同时触发告警。预处理通过对分析后的数据进行预处理得到各个维度的可用数据结构,能够同时触发告警。告警,其采用脚本方式结合系统数据进行动态告警触发设置并执行告警。信息展现层:以友好直观的UI展现系统各维度的调用以及性能信息。基于Annotation使用的调用链的实现系统,其为一个为大型分布式系统服务的n层架构跟踪平台。其跟踪单次请求调用中的分布式请求,基于googleDapper,跟踪数据的核心数据结构TraceHeader,由SpanId,ParentSpanId,和TraceId以及其他信息组成。如图2所示为本专利技术的TraceId行为调用示意图,在4个节点之间执行了3次的RPC调用。SpanId:RPC(远程过程调用/remoteprocedurecall)跟踪的基本单元;当收到RPC消息时处理的工作的ID;在RPC请求到达节点时生成。ParentSpanId:发起RPC调用的父span的SpanId。如果节点是分布式请求的起点,这里将没有父span-对于这种情况,使用值-1来表示这个span是事务的根span。TraceId:在分布式系统间单个分布式请求发送/接收的消息的ID;必须跨整个服务器集群做到全局唯一。TraceHeader在分布式请求的每个节点通过采集执行执行时间(执行开始时间-执行结束时间)、当前节点服务器信息、节点实例信息、出入参、异常堆栈等。本系统提供注解方式的调用链标记,在系统运行期间精确的对单次事务请求添加过注解的方法生成跟踪信息。本系统采用字节码增强技术干预发起RPC的代码以此来自动处理标签信息,在类装载时通过介入应用代码为分布式调用和性能信息注入必要的跟踪代码来传输跟踪信息。本系统采用插件的方式对主流RPC框架进行封装,屏蔽各个RPC框架对TraceHeader信息的载入和提取。以上对本专利技术实施例进行了详细介绍,本文中应用了具体个例对本专利技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本专利技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本专利技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本专利技术的限制。本文档来自技高网...
基于Annotation使用的调用链的实现系统

【技术保护点】
一种基于Annotation使用的调用链的实现系统,其特征在于,该系统包括应用容器层、信息传输层、信息存储层、信息处理层、信息展现层;其中,应用容器层:对象为应用部署所在的容器,通过代理模块采用java agent方式生成服务调用的调用链等信息,并由代理模块将生成的调用链信息发送消息队列;信息传输层:包括消息队列和收集器;其采用消息队列来接收代理模块发送的调用链等信息,收集器从消息队列中获取数据并进行持久化到存储介质;信息存储层:即存储介质,用来集中存储从各个应用收集的调用链等信息;信息处理层:包括分析器、预处理和告警;其中,分析器,其从存储介质或者消息队列拿取调用链等信息进行信息筛选分类,能够同时触发告警;预处理,其通过对分析后的数据进行预处理得到各个维度的可用数据结构,能够同时触发告警;告警,其采用脚本方式结合系统数据进行动态告警触发设置并执行告警;信息展现层:以友好直观的UI展现系统各维度的调用以及性能信息。

【技术特征摘要】
1.一种基于Annotation使用的调用链的实现系统,其特征在于,该系统包括应用容器层、信息传输层、信息存储层、信息处理层、信息展现层;其中,应用容器层:对象为应用部署所在的容器,通过代理模块采用javaagent方式生成服务调用的调用链等信息,并由代理模块将生成的调用链信息发送消息队列;信息传输层:包括消息队列和收集器;其采用消息队列来接收代理模块发送的调用链等信息,收集器从消息队列中获取数据并进行持久化到存储介质;信息存储层:即存储介质,用来集中存储从各个应用收集的调用链等信息;信息处理层:包括分析器、预处理和告警;其中,分析器,其从存储介质或者消息队列拿取调用链等信息进行信息筛选分类,能够同时触发告警;预处理,其通过对分析后的数据进行预处理得到各个维度的可用数据结构,能够同时触发告警;告警,其采用脚本方式结合系统数据进行动态告警触发设置并执行告警;信息展现层:以友好直观的UI展现系统各维度的调用以及性能信息...

【专利技术属性】
技术研发人员:周宏江廖小文周恒林宏正
申请(专利权)人:广东亿迅科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1