多系统的方法调用链路图的生成方法技术方案

技术编号:23085108 阅读:20 留言:0更新日期:2020-01-11 01:10
本发明专利技术涉及多系统的方法调用链路图的生成方法,包括:A.启动pinpoint服务,对所有系统调用进行采样并保存文本结构的调用链路信息;B.通过FlumeNg服务将调用链路信息保存到非关系数据库中;C.通过至少两个数据解析器从非关系数据库中读取多条调用链路信息进行解析,并确定各方法之间的调用关系;D.根据各方法之间的调用关系确定各方法之间的层级关系,形成以方法名为节点值的有向无环树状图,并保存到非关系数据库中,用于描述所有系统中各方法的调用链路图。本发明专利技术能够高效的解析出不同系统中所有方法之间的调用关系,形成方法调用链路图,同时也保证了方法调用关系的正确性。

The generation method of method call link graph in multi system

【技术实现步骤摘要】
多系统的方法调用链路图的生成方法
本专利技术涉及数据处理的方法,具体讲是多系统的方法调用链路图的生成方法。
技术介绍
在日常的软件开发和测试过程中,对软件中正在修改或者测试的方法,开发人员或者测试人员不清楚该方法被上游或者下游哪些系统调用以及具体的调用方法与方式。目前解决上述问题的方式有两种,第一种是由各系统的开发人员,手动登记对外提供的方法,以及调用的外部方法。这种方式由于依靠人工手动登记,因此非常耗时且容易遗漏。另外该方式不能体现某个方法在所有系统的层级调用关系,例如对4个系统(A,B,C,D)的4个方法(methodA,methodB,methodC,methodD),构成调用全链路:A(methodA)->B(methodB)->C(methodC)->D(methodD),该方法只能获得某一个方法的链路调用关系,比如查询methodC,只能获得C(methodC)->D(methodD)或者B(methodB)->C(methodC),不能获得全面的全链路调用关系A(methodA)->B(methodB)->C(methodC)->D(methodD)。第二种方式是通过pinpoint系统或相似软件系统,在这种方式中pinpoint系统或相似软件系统只能提供系统间的调用关系,例如A->B->C->D;或者通过选择请求响应散点图的某个点,查看该点代表的某个特定方法的全系统调用链路图。但是pinpoint等软件不能提供基于输入方法名,获得该方法的全链路调用关系。并且,现有的两种方式在手动管理和获取链路图的过程中,都存在效率低下且容易遗漏接口之间调用关系的问题。
技术实现思路
本专利技术提供了一种多系统的方法调用链路图的生成方法,可以快速解析出不同系统中所有方法之间的调用关系,并且保证调用关系的准确性。本专利技术多系统的方法调用链路图的生成方法,包括:A.启动pinpoint服务,对所有系统调用进行采样并保存文本结构的调用链路信息。在调用链路信息中包含有方法名、方法ID、上游方法ID、下游方法ID和应用名等关键字内容;B.通过FlumeNg服务将pinpoint服务的采样的调用链路信息异步归集到一个非关系数据库(例如mongodb数据库)中保存,这样能够在不影响pinpoint性能的情况下,将采样的数据同步到非关系数据库中保存;C.通过至少两个数据解析器,从所述的非关系数据库中平行读取多条保存的文本结构的调用链路信息进行解析,根据调用链路信息中对各方法描述的关键字,确定各方法之间的调用关系;D.根据得到的各方法之间的调用关系,以及调用链路信息中的方法名、方法ID、上游方法ID、下游方法ID和应用名等内容,通过递归算法确定各方法之间的层级关系,形成以方法名为节点值的有向无环树状图,并保存到所述非关系数据库中,用于描述所有系统中各方法的调用链路图。pinpoint软件系统是一种常用的开源全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能,基于GoogleDapper论文进行的实现。主要提供如下2个重要功能:(1)业务拓扑图:对整个系统中应用的调用关系进行了可视化的展示,单击某个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数量等。(2)请求响应散点图:以时间维度进行请求计数和响应时间的展示,通过拖动图表可以选择对应的请求查看执行的详细情况。FlumeNG是一种分布式系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。本专利技术通过解析pinpoint开源软件的数据,实现了在多个系统间所有方法调用链路的分析,从而得到多系统方法调用链路图。优选的,步骤C中,在每个数据解析器读取调用链路信息时,分别对读取的数据进行加分布式锁操作,避免多台数据解析器处理同一条数据,以及脏读、幻读等情况出现。优选的,步骤C中,在确定各方法之间的调用关系后,通过NFA非确定自动机算法,形成以方法名为键,以方法ID、上游方法ID、下游方法ID和应用名为值的键-值对数据结构。本专利技术能够高效的解析出不同系统中所有方法之间的调用关系,形成方法调用链路图,同时也保证了方法调用关系的正确性。以下结合实施例的具体实施方式,对本专利技术的上述内容再作进一步的详细说明。但不应将此理解为本专利技术上述主题的范围仅限于以下的实例。在不脱离本专利技术上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本专利技术的范围内。附图说明图1为本专利技术多系统的方法调用链路图的生成方法的流程图。具体实施方式如图1所示本专利技术多系统的方法调用链路图的生成方法,包括:A.启动pinpoint服务,对所有系统调用进行采样并保存文本结构的调用链路信息。在调用链路信息中包含有方法名、方法ID、上游方法ID、下游方法ID和应用名等关键字内容。B.通过FlumeNg服务将pinpoint服务的采样的调用链路信息异步归集到mongodb非关系数据库中保存,这样能够在不影响pinpoint性能的情况下,将采样的数据同步到非关系数据库中保存。C.通过多个数据解析器,从所述的mongodb非关系数据库中平行读取多条保存的文本结构的调用链路信息进行解析,根据调用链路信息中对各方法描述的关键字,确定各方法之间的调用关系。然后通过NFA非确定自动机算法,形成以方法名为键,以方法ID、上游方法ID、下游方法ID和应用名为值的键-值对数据结构。在数据解析器读取调用链路信息时,分别对读取的数据进行加分布式锁操作,避免多台数据解析器处理同一条数据,以及脏读、幻读等情况出现。D.根据得到的各方法之间的调用关系,以及调用链路信息中的方法名、方法ID、上游方法ID、下游方法ID和应用名等内容,通过递归算法确定各方法之间的层级关系,形成以方法名为节点值的有向无环树状图,并保存到mongodb非关系数据库中,用于描述所有系统中各方法的调用链路图。这样,通过解析pinpoint开源软件的数据,实现了在多个系统间所有方法调用链路的分析,从而得到多系统方法调用链路图。本文档来自技高网
...

【技术保护点】
1.多系统的方法调用链路图的生成方法,其特征包括:/nA.启动pinpoint服务,对所有系统调用进行采样并保存文本结构的调用链路信息;/nB.通过FlumeNg服务将pinpoint服务的采样的调用链路信息异步归集到一个非关系数据库中保存;/nC.通过至少两个数据解析器,从所述的非关系数据库中平行读取多条保存的文本结构的调用链路信息进行解析,根据调用链路信息中对各方法描述的关键字,确定各方法之间的调用关系;/nD.根据得到的各方法之间的调用关系,通过递归算法确定各方法之间的层级关系,形成以方法名为节点值的有向无环树状图,并保存到所述非关系数据库中,用于描述所有系统中各方法的调用链路图。/n

【技术特征摘要】
1.多系统的方法调用链路图的生成方法,其特征包括:
A.启动pinpoint服务,对所有系统调用进行采样并保存文本结构的调用链路信息;
B.通过FlumeNg服务将pinpoint服务的采样的调用链路信息异步归集到一个非关系数据库中保存;
C.通过至少两个数据解析器,从所述的非关系数据库中平行读取多条保存的文本结构的调用链路信息进行解析,根据调用链路信息中对各方法描述的关键字,确定各方法之间的调用关系;
D.根据得到的各方法之间的调用关系,通过递归算法确定各方法之间的层级关系,形成以方法...

【专利技术属性】
技术研发人员:黄勇熊阳李佳明谢延泽周勇
申请(专利权)人:四川新网银行股份有限公司
类型:发明
国别省市:四川;51

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

1