本发明涉及服务调用路径检测技术领域,尤其涉及一种基于网络数据的业务服务调用关系路径检测方法。
背景技术:
伴随着互联网技术快速发展,越来越多的业务办理都需要通过软件系统完成,业务系统的长期稳定运行也变得更为重要,所以对业务系统的支撑运维手段要求也变得更高。需要更快速、更直观的定位问题点和面,就需要能将被监控业务的服务路径梳理清楚,基于业务服务的调用关系去展示业务监控结果才能更快速的发现问题所在的服务环节。
现有的业务服务路径监控方式一般有以下几种:1、根据记录的信息人工手动配置出来;2、通过代码注入服务调用过程;3、通过关联参数搜索服务调用过程。
对于上述现有的三种业务服务路径监控方法:
第一种根据记录的信息人工手动配置出来,这种方式虽然比较灵活,系统与系统之间也不存在任何耦合性。但是存在以下几点缺陷:
1、人工操作与真实的数据存在差异,准确性无法保证;
2、业务服务调用过程复杂,梳理难度很大量大,可行性和效率都很低;
3、业务服务在系统更新时存在灵活变动,人工配置无法实时更新,存在滞后性。
第二种是通过代码注入服务调用过程,这种方式虽然即实时又准确,但是也存在以下缺陷:
1、与业务系统存在耦合性,依赖业务系统本身运行;
2、部分服务调用环节无法注入代码获取服务调用过程。
第三种是通过关联参数搜索服务调用过程,这种方式虽然不依赖被监控系统,同时也可以通过得出部分服务调用过程,但其缺点是只查看某一次具体的调用过程,不能基于业务服务路径做统计分析查看业务整体调用过程,而且并不是所有服务调用过程都存在关联参数,所以适应条件比较苛刻,适应面比较窄。
因此,如何避免现有的业务服务路径发现方法的人工成本高效率低下且准确率低,仍然是本领域技术人员亟待解决的问题。
技术实现要素:
本发明提供一种基于网络数据的业务服务调用关系路径检测方法,用以解决现有技术中业务服务路径发现方法的人工成本高效率低下且准确率低的缺陷,通过基于网络数据本身存在的潜在关系自动发现来进行业务服务调用关系的检测,实现了提高检测准确性和实时性并且避免了人工造成的不可靠和成本高。
本发明提供一种基于网络数据的业务服务调用关系路径检测方法,包括:
提取待测业务服务的最前端服务;
基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;
其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。
根据本发明提供的一种基于网络数据的业务服务调用关系路径检测方法,所述基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计,具体包括:
将截取的网络数据通过传输协议和对应应用协议进行解码得到服务请求响应数据集合;
基于对应于各服务类型的响应ip端口格式将所述服务请求响应数据进行分类得到各类服务请求响应数据子集合;
基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合的任一前端服务和任一后端服务请求响应数据子集合的任一后端服务的调用匹配率。
根据本发明提供的一种基于网络数据的业务服务调用关系路径检测方法,所述基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合的任一前端服务和任一后端服务请求响应数据子集合的任一后端服务的调用匹配率,具体包括:
基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合中任一前端服务和任一后端服务请求响应数据子集合中任一后端服务存在调用关系的次数;
基于所述各类服务请求响应数据子集合确定所述任一前端服务作为前端数据元素在所述任一前端服务请求响应数据子集合中出现的次数;
基于所述存在调用关系的次数与所述出现的次数的比例确定所述任一前端服务请求响应数据子集合的所述任一前端服务和所述任一后端服务请求响应数据子集合的所述任一后端服务的调用匹配率。
根据本发明提供的一种基于网络数据的业务服务调用关系路径检测方法,所述基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定业务服务调用关系集合,具体包括:
若基于所述任一前端服务请求响应数据子集合中元素特征参数确定的所述任一前端服务和基于所述任一后端服务请求响应数据子集合中元素特征参数确定的所述任一后端服务的调用匹配率大于预设调用匹配率,则确定所述任一前端服务和所述任一后端服务存在有效调用关系;
基于存在所述有效调用关系的所述任一前端服务和所述任一后端服务组成业务服务调用关系集合。
根据本发明提供的一种基于网络数据的业务服务调用关系路径检测方法,所述将截取的网络数据通过传输协议和对应应用协议进行解码得到服务请求响应数据集合,具体包括:
基于tcp传输控制协议和对应应用协议将截取的网络数据进行解码,得到服务请求响应数据集合,所述服务请求响应数据集合包括去参数的各类服务请求、所述各类服务的请求开始时间和响应结束时间、所述各类服务的请求ip、所述各类服务的响应ip端口和所述各类服务的关联参数;
对应地,所述基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合中任一前端服务和任一后端服务请求响应数据子集合中任一后端服务存在调用关系,具体包括:
基于所述各类服务请求响应数据子集合中元素的网络特征参数和所述各类服务之间的前后端关系确定任一前端服务请求响应数据子集合中任一前端服务的请求开始时间t1、所述任一前端服务的响应结束时间t2、所述任一前端服务的响应ip、所述任一前端服务的关联参数p1、任一后端服务请求响应数据子集合中任一后端服务的请求开始时间
若确定ipfront-back=ip、
根据本发明提供的一种基于网络数据的业务服务调用关系路径检测方法,所述基于对应于各服务类型的响应ip端口格式将所述服务请求响应数据进行分类得到各类服务请求响应数据子集合,具体包括:
基于预设查询规则从所述服务请求响应数据中截取预设时间段内网络数据;
基于各服务类型在服务路径中的响应ip端口格式将所述预设时间段内网络数据进行分类得到各类服务请求响应数据子集合;
其中,所述预设查询规则为任一服务的请求开始时间大于查询的开始时间、所述任一服务的响应结束时间小于所述查询的结束时间且所述任一服务的响应ip端口符合预设端口配置要求。
根据本发明提供的一种基于网络数据的业务服务调用关系路径检测方法,所述网络数据从与所述待测业务服务同一区域网络中截取,具体包括:
所述网络数据是基于所述待测业务服务所属区域网络中接收交换机镜像或者网卡中网络原始流量数据确定的。
本发明还提供一种基于网络数据的业务服务调用关系路径检测装置,包括:
提取单元,用于提取待测业务服务的最前端服务;
查询单元,用于基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;
其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于网络数据的业务服务调用关系路径检测方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于网络数据的业务服务调用关系路径检测方法的步骤。
本发明提供的基于网络数据的业务服务调用关系路径检测方法,通过提取待测业务服务的最前端服务;然后基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。由于基于截取的网络数据的网络特征参数进行前后端数据之间的调用关系的提取和统计和预设调用匹配条件得到该截取网络数据所在区域网络的各服务之间的调用关系的集合,因为调用关系的提取直接利用的是网络特征参数进行调用关系的挖掘,既可以保证跟真实数据匹配的准确性,通过程序自动发现效率也高,并且业务服务调用路径发生变化也可以马上发现出来,实时性也较高,而且还因为是通过截取的网络数据进行分析,也不依赖被监控系统本身,所以系统间也不存在任何耦合性。因此,本发明提供的基于网络数据的业务服务调用关系路径检测方法,实现了提高服务路径检测准确性和实时性,还避免了人工造成的不可靠和高成本。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于网络数据的业务服务调用关系路径检测方法的流程示意图;
图2为本发明提供的正交振幅调制下的软判决的解调装置的结构示意图;
图3为本发明提供的统一业务服务调用关系拓扑图的生成方法的框架图;
图4为本发明提供的统一业务服务调用关系拓扑图的生成方法的具体流程图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的业务服务路径发现方法普遍存在人工成本高效率低下且准确率低的问题。下面结合图1描述本发明的基于网络数据的业务服务调用关系路径检测方法。图1为本发明提供的基于网络数据的业务服务调用关系路径检测方法的流程示意图,如图1所示,该方法包括:
步骤110,提取待测业务服务的最前端服务。
具体地,对于需要进行服务路径检测的业务服务,首先要将其最前端的服务提取出来,例如,某一业务服务的实际服务调用关系路径为url1->api3->sql2,那么当其调用关系路径未知而需要进行调用关系路径检测时,那么就先提取出其最前端服务即web服务:url1,然后基于ulr1去发现后续的调用关系路径。
步骤120,基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;
其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。
具体地,基于步骤110提取出的待测业务服务的最前端服务,然后以所述最前端服务作为搜索条件到统一业务服务调用关系拓扑图中查询后续完整的服务调用关系的完整路径。例如,步骤110中提取出了最前端服务url1,然后通过以url1为查询条件去统一业务服务调用关系拓扑图中进行搜索,得到了url1与api3之间存在有效前后端调用关系,而继续追踪到api3与sql2之间也存在有效前后端调用关系,因此可以得到待测业务服务的调用关系路径为url1->api3->sql2。而上述可以用于查询搜索服务调用关系路径的统一业务服务调用关系拓扑图是基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。进一步地,首先从待测业务服务同一区域网络中截取网络数据,然后对截取的网络数据的网络特征参数进行分析挖掘出两两前后端服务之间的调用关系,将调用关系进行累加统计得到任意两前后端服务之间能匹配上调用关系的概率,基于所述概率和预设的匹配概率条件就可以判定出有效调用关系,然后将所有存在有效调用关系的前后端服务组成业务服务调用关系集合,最后将该集合进行拓扑图的绘制以便更方便地进行服务调用关系路径的查询和更直观的展示该区域网络中的所有服务调用关系。
本发明提供的方法,通过提取待测业务服务的最前端服务;然后基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。由于基于截取的网络数据的网络特征参数进行前后端数据之间的调用关系的提取和统计和预设调用匹配条件得到该截取网络数据所在区域网络的各服务之间的调用关系的集合,因为调用关系的提取直接利用的是网络特征参数进行调用关系的挖掘,既可以保证跟真实数据匹配的准确性,通过程序自动发现效率也高,并且业务服务调用路径发生变化也可以马上发现出来,实时性也较高,而且还因为是通过截取的网络数据进行分析,也不依赖被监控系统本身,所以系统间也不存在任何耦合性。因此,本发明提供的基于网络数据的业务服务调用关系路径检测方法,实现了提高服务路径检测准确性和实时性,还避免了人工造成的不可靠和高成本。
在上述实施例的基础上,所述基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计,具体包括:
将截取的网络数据通过传输协议和对应应用协议进行解码得到服务请求响应数据集合;
基于对应于各服务类型的响应ip端口格式将所述服务请求响应数据进行分类得到各类服务请求响应数据子集合;
基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合的任一前端服务和任一后端服务请求响应数据子集合的任一后端服务的调用匹配率。
具体地,对于截取的网络数据首先通过传输协议和对应应用协议进行解码得到服务请求响应数据集合,所述传输协议通常是tcp协议,而对应应用协议是根据需要截取的网络数据的服务类型进行设置,例如需要截取web网页类型服务、mid中间件类型服务和db数据库类型服务,那么设置对应的三种解码方式再加上传输协议进行网络数据的解码,得到服务请求响应数据集合;然后,基于对应于各服务类型的响应ip端口格式将所述服务请求响应数据进行分类得到各类服务请求响应数据子集合,由于不同服务类型对应的硬件集群架构不同,因此需要对所有服务请求响应数据进行分类得到各类服务请求响应数据子集合可以依据各服务类型的响应ip端口格式不同为分类条件;最后,基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合的任一前端服务和任一后端服务请求响应数据子集合的任一后端服务的调用匹配率;对于分类后的各类服务请求响应数据子集合,可以确定任意两集合之间的前后端关系,例如,若服务请求响应数据集合被分为三类服务请求响应数据子集合:web请求响应数据子集合、mid请求响应数据子集合和db请求响应数据子集合,那么可以确定web请求响应数据子集合中的元素与mid请求响应数据子集合中的元素之间的前后调用关系需要被挖掘发现、web请求响应数据子集合中的元素与db请求响应数据子集合中的元素之间的前后调用关系需要被挖掘发现、mid请求响应数据子集合中的元素与db请求响应数据子集合中的元素之间的前后调用关系需要被挖掘发现。基于上述已经确定好的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数对任一前端服务请求响应数据子集合中各元素代表的服务进行与其对应任一后端服务请求响应数据子集合中各元素代表的服务进行调用关系的匹配,匹配依据即前后服务的网络特征参数,如果通过它们的网络特征参数可以确定它们的请求ip和响应ip存在调用关系、服务占用时间存在包含关系以及关联参数相等,那么可以确认它们之间存在调用关系。
在上述实施例的基础上,所述基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合的任一前端服务和任一后端服务请求响应数据子集合的任一后端服务的调用匹配率,具体包括:
基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合中任一前端服务和任一后端服务请求响应数据子集合中任一后端服务存在调用关系的次数;
基于所述各类服务请求响应数据子集合确定所述任一前端服务作为前端数据元素在所述任一前端服务请求响应数据子集合中出现的次数;
基于所述存在调用关系的次数与所述出现的次数的比例确定所述任一前端服务请求响应数据子集合的所述任一前端服务和所述任一后端服务请求响应数据子集合的所述任一后端服务的调用匹配率。
具体地,首先服务请求响应数据集合被分类为各类服务请求响应数据子集合,然后对于任一类服务请求响应数据子集合都要搜索相对其后端的任一类服务请求响应数据子集合中与前子集合中元素存在调用关系的所有元素并进行统计。具体统计规则通过如下例子进行解释:需要分析web请求响应数据子集合dweb和mid请求响应数据子集合dmid各元素代表的服务之间存在调用关系的匹配率,而dweb={web1,web2,web3,web4,web5,.....,webn},其中,web1=url1,web2=url2,web3=url2,web4=url1,web5=url3,......,webn=url1;dmid={mid1,mid2,mid3,mid4,mid5,.....,midm},其中,mid1=api1,mid2=api1,mid3=api1,mid4=api2,mid5=api3,......,midm=api3。从web1开始,将web1与dmid中所有元素mid1,mid2,mid3,mid4,mid5,.....,midm进行调用关系确定,例如发现web1与mid1,mid2,mid3,mid4,mid5依次存在调用、调用、不调用、调用、不调用的关系,那么每次调用关系的确定就对对应两服务之间调用次数进行加1,例如在确定web1与mid2存在调用时,则将url1与api1之间调用次数进行加1得到总次数2,然后再如上述遍历方式让web2和dmid中所有元素mid1,mid2,mid3,mid4,mid5,.....,midm进行调用关系确定,让web3和dmid中所有元素mid1,mid2,mid3,mid4,mid5,.....,midm进行调用关系确定等等。最终得到dweb和dmid各服务之间存在调用关系的次数。然后,再确定基于所述各类服务请求响应数据子集合确定所述任一前端服务作为前端数据元素在所述任一前端服务请求响应数据子集合中出现的次数,例如在上述例子中,若url1在dweb中出现的总次数为100次,而之前累加统计得到dweb中的url1与dmid中的api1之间存在调用关系的次数为90,那么说明url1与api1的匹配率为90/100,截取的网络数据中url1出现100次其中有90次调用的后端服务都是api2,另外10次调用的是其他中间件类型服务或者数据库类型服务。
在上述实施例的基础上,所述基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定业务服务调用关系集合,具体包括:
若基于所述任一前端服务请求响应数据子集合中元素特征参数确定的所述任一前端服务和基于所述任一后端服务请求响应数据子集合中元素特征参数确定的所述任一后端服务的调用匹配率大于预设调用匹配率,则确定所述任一前端服务和所述任一后端服务存在有效调用关系;
基于存在所述有效调用关系的所述任一前端服务和所述任一后端服务组成业务服务调用关系集合。
具体地,任一前端服务和任一后端服务的调用匹配率都是基于它们各自的网络特征参数确定的,而预设调用匹配率则是用户根据检测查全率和查准率综合考虑的需要进行自行配置的,例如,当检测需求是存在调用关系就一定要挖掘出来可以适当牺牲挖掘的准确性,那么将预设调用匹配率设置为70%,只要统计得到的调用匹配率超过70%则将两者调用关系认定为有效调用关系;当检测需求是检测出调用关系一定要保证准确性可以适当牺牲有些关系不明显匹配的两两服务被漏掉,那么将预设调用匹配率设置为95%,只有统计得到的调用匹配率超过95%才将两者调用关系认定为有效调用关系。最后,将基于存在所述有效调用关系的所述任一前端服务和所述任一后端服务组成业务服务调用关系集合。
在上述实施例的基础上,所述将截取的网络数据通过传输协议和对应应用协议进行解码得到服务请求响应数据集合,具体包括:
基于tcp传输控制协议和对应应用协议将截取的网络数据进行解码,得到服务请求响应数据集合,所述服务请求响应数据集合包括去参数的各类服务请求、所述各类服务的请求开始时间和响应结束时间、所述各类服务的请求ip、所述各类服务的响应ip端口和所述各类服务的关联参数;
对应地,所述基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合中任一前端服务和任一后端服务请求响应数据子集合中任一后端服务存在调用关系,具体包括:
基于所述各类服务请求响应数据子集合中元素的网络特征参数和所述各类服务之间的前后端关系确定任一前端服务请求响应数据子集合中任一前端服务的请求开始时间t1、所述任一前端服务的响应结束时间t2、所述任一前端服务的响应ip、所述任一前端服务的关联参数p1、任一后端服务请求响应数据子集合中任一后端服务的请求开始时间
若确定ipfront-back=ip、
具体地,进一步限定了截取的网络数据的解码过程以及提取的网络特征参数用于后续的调用关系的挖掘上以及基于上述网络特征参数如何判定两服务之间是否存在调用关系。首先,基于tcp传输控制协议和对应应用协议将截取的网络数据进行解码,得到服务请求响应数据集合,所述服务请求响应数据集合包括去参数的各类服务请求、所述各类服务的请求开始时间和响应结束时间、所述各类服务的请求ip、所述各类服务的响应ip端口和所述各类服务的关联参数。其中,所述关联参数包括为服务对应的请求的事务id或用户名等能区分不同用户或客户端发出的不同请求的参数。因此,调用关系的判定规则是:前端服务的响应ip等于后端服务的请求ip、前端服务请求开始时间小于后端服务请求开始时间、前端服务响应结束时间大于后端服务响应结束时间和如果存在关联参数则前端关联参数值等于后端关联参数值的多重条件同时满足的情况下认定前端服务与后端服务存在关联调用关系。
在上述实施例的基础上,所述基于对应于各服务类型的响应ip端口格式将所述服务请求响应数据进行分类得到各类服务请求响应数据子集合,具体包括:
基于预设查询规则从所述服务请求响应数据中截取预设时间段内网络数据;
基于各服务类型在服务路径中的响应ip端口格式将所述预设时间段内网络数据进行分类得到各类服务请求响应数据子集合;
其中,所述预设查询规则为任一服务的请求开始时间大于查询的开始时间、所述任一服务的响应结束时间小于所述查询的结束时间且所述任一服务的响应ip端口符合预设端口配置要求。
具体地,基于预设查询规则从所述服务请求响应数据中截取预设时间段内网络数据,其中,预设查询规则是任一服务的请求开始时间大于查询的开始时间、所述任一服务的响应结束时间小于所述查询的结束时间且所述任一服务的响应ip端口符合预设端口配置要求,而查询的开始时间和结束时间对所述预设时间段进行了限定。基于各服务类型在服务路径中的响应ip端口格式将所述预设时间段内网络数据进行分类得到各类服务请求响应数据子集合:进一步地,根据需要进行业务服务路径发现的系统应用服务路径配置:
sac{web:{ip11:port11、ip12:port12、ip13:port13}->
mid:{ip21:port21、ip22:port22、ip23:port23}->
db:{ip31:port31、ip32:port32、ip33:port33}->}
当前系统应用服务路径配置有三个应用集群分别为web应用集群、mid应用集群和db应用集群,它们之间的交互关系为web应用集群调用mid应用集群、mid应用集群调用db应用集群和web应用集群调用db应用集群。而web应用集群中有ip端口为ip11:port11、ip12:port12、ip13:port13三个应用实例,mid应用集群中有ip端口为ip21:port21、ip22:port22、ip23:port23三个应用实例,db应用集群中有ip端口为ip31:port31、ip32:port32、ip33:port33三个应用实例。基于各应用集群在服务路径中的响应ip端口格式将所述预设时间段内网络数据进行分类。
在上述实施例的基础上,所述网络数据从与所述待测业务服务同一区域网络中截取,具体包括:
所述网络数据是基于所述待测业务服务所属区域网络中接收交换机镜像或者网卡中网络原始流量数据确定的。
具体地,网络数据的截取方法可以是基于待测业务服务所属区域网络中接收交换机镜像获取,也可以是基于待测业务服务所属区域网络中网卡本身网络原始流量数据获取,此处不作具体限定。
下面对本发明提供的基于网络数据的业务服务调用关系路径检测装置进行描述,下文描述的基于网络数据的业务服务调用关系路径检测装置与上文描述的基于网络数据的业务服务调用关系路径检测方法可相互对应参照。
图2为本发明提供的正交振幅调制下的软判决的解调装置的结构示意图,如图2所示,该装置包括提取单元210和查询单元220,其中,
所述提取单元210,用于提取待测业务服务的最前端服务;
所述查询单元220,用于基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;
其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。
本发明提供的装置,通过提取待测业务服务的最前端服务;然后基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。由于基于截取的网络数据的网络特征参数进行前后端数据之间的调用关系的提取和统计和预设调用匹配条件得到该截取网络数据所在区域网络的各服务之间的调用关系的集合,因为调用关系的提取直接利用的是网络特征参数进行调用关系的挖掘,既可以保证跟真实数据匹配的准确性,通过程序自动发现效率也高,并且业务服务调用路径发生变化也可以马上发现出来,实时性也较高,而且还因为是通过截取的网络数据进行分析,也不依赖被监控系统本身,所以系统间也不存在任何耦合性。因此,本发明提供的基于网络数据的业务服务调用关系路径检测装置,实现了提高服务路径检测准确性和实时性,还避免了人工造成的不可靠和高成本。
在上述实施例的基础上,该装置中,所述基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计,具体包括:
将截取的网络数据通过传输协议和对应应用协议进行解码得到服务请求响应数据集合;
基于对应于各服务类型的响应ip端口格式将所述服务请求响应数据进行分类得到各类服务请求响应数据子集合;
基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合的任一前端服务和任一后端服务请求响应数据子集合的任一后端服务的调用匹配率。
在上述实施例的基础上,该装置中,所述基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合的任一前端服务和任一后端服务请求响应数据子集合的任一后端服务的调用匹配率,具体包括:
基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合中任一前端服务和任一后端服务请求响应数据子集合中任一后端服务存在调用关系的次数;
基于所述各类服务请求响应数据子集合确定所述任一前端服务作为前端数据元素在所述任一前端服务请求响应数据子集合中出现的次数;
基于所述存在调用关系的次数与所述出现的次数的比例确定所述任一前端服务请求响应数据子集合的所述任一前端服务和所述任一后端服务请求响应数据子集合的所述任一后端服务的调用匹配率。
在上述实施例的基础上,该装置中,所述基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定业务服务调用关系集合,具体包括:
若基于所述任一前端服务请求响应数据子集合中元素特征参数确定的所述任一前端服务和基于所述任一后端服务请求响应数据子集合中元素特征参数确定的所述任一后端服务的调用匹配率大于预设调用匹配率,则确定所述任一前端服务和所述任一后端服务存在有效调用关系;
基于存在所述有效调用关系的所述任一前端服务和所述任一后端服务组成业务服务调用关系集合。
在上述实施例的基础上,该装置中,所述将截取的网络数据通过传输协议和对应应用协议进行解码得到服务请求响应数据集合,具体包括:
基于tcp传输控制协议和对应应用协议将截取的网络数据进行解码,得到服务请求响应数据集合,所述服务请求响应数据集合包括去参数的各类服务请求、所述各类服务的请求开始时间和响应结束时间、所述各类服务的请求ip、所述各类服务的响应ip端口和所述各类服务的关联参数;
对应地,所述基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合中任一前端服务和任一后端服务请求响应数据子集合中任一后端服务存在调用关系,具体包括:
基于所述各类服务请求响应数据子集合中元素的网络特征参数和所述各类服务之间的前后端关系确定任一前端服务请求响应数据子集合中任一前端服务的请求开始时间t1、所述任一前端服务的响应结束时间t2、所述任一前端服务的响应ip、所述任一前端服务的关联参数p1、任一后端服务请求响应数据子集合中任一后端服务的请求开始时间
若确定ipfront-back=ip、
在上述实施例的基础上,该装置中,所述基于对应于各服务类型的响应ip端口格式将所述服务请求响应数据进行分类得到各类服务请求响应数据子集合,具体包括:
基于预设查询规则从所述服务请求响应数据中截取预设时间段内网络数据;
基于各服务类型在服务路径中的响应ip端口格式将所述预设时间段内网络数据进行分类得到各类服务请求响应数据子集合;
其中,所述预设查询规则为任一服务的请求开始时间大于查询的开始时间、所述任一服务的响应结束时间小于所述查询的结束时间且所述任一服务的响应ip端口符合预设端口配置要求。
在上述实施例的基础上,该装置中,所述网络数据从与所述待测业务服务同一区域网络中截取,具体包括:
所述网络数据是基于所述待测业务服务所属区域网络中接收交换机镜像或者网卡中网络原始流量数据确定的。
在上述实施例的基础上,本发明提供一种统一业务服务调用关系拓扑图的生成方法,图3为本发明提供的统一业务服务调用关系拓扑图的生成方法的框架图,图4为本发明提供的统一业务服务调用关系拓扑图的生成方法的具体流程图。如图3所示,该拓扑图的生成从总的框架上分析分成三个块:数据采集、数据分析和数据展示,每个块分别包括:数据接收、数据解码和数据存储;数据拉取、关联分析和关系存储;关系获取、关系构建和拓扑展示。如图4所示,三个块的具体流程步骤如下:
步骤1.1,接收交换机镜像或者网卡本身网络原始流量数据。
步骤1.2,按照tcp网络传输协议和对应的应用协议解码后形成应用交互的服务请求响应数据,数据中包含具体内容有去参的请求url/api/sql、请求开始时间、响应结束时间、请求响应ip端口以及关联参数(例如一次请求的事务id、用户名等能区分不同用户或客户端发出的不同请求参数)。
步骤1.3,将解码后的应用请求响应数据存入数据库。
步骤2.1,根据需要进行业务服务路径发现的系统应用服务路径配置:
sac{web:{ip11:port11、ip12:port12、ip13:port13}->
mid:{ip21:port21、ip22:port22、ip23:port23}->
db:{ip31:port31、ip32:port32、ip33:port33}->}
当前系统应用服务路径配置有三个应用集群分别为web、mid、db,他们之间的交互关系为web应用集群调用mid应用集群,mid应用集群调用db应用集群,而web应用集群中有ip端口为ip11:port11、ip12:port12、ip13:port13三个应用实例,mid应用集群中有ip端口为ip21:port21、ip22:port22、ip23:port23三个应用实例,db应用集群中有ip端口为ip31:port31、ip32:port32、ip33:port33三个应用实例。然后再根据步骤1.2中数据的请求开始时间大于查询数据的开始时间,响应的结束时间小于查询数据的结束时间并且数据的响应ip端口必须是应用服务路径中配置的ip端口,获取一段时间的数据,得到数据集合d{dweb{dweb1,dweb2,..dwebn},dmid{dmid1,dmid2,..dmidn},ddb{ddb1,ddb2,..ddbn}}。
步骤2.2,对数据根据应用拓扑关系从首端步骤2.1中集合d中的dweb数据(因为从配置sac中得出web应用集群是首端应用集群)数据开始遍历,依次对需要进行业务服务路径发现的数据进行端到端的关联统计分析。
步骤2.3,通过前端数据的响应ip等于后端数据的请求ip、前端数据请求开始时间小于后端数据请求开始时间、前端数据响应结束时间大于后端数据响应结束时间和如果存在关联参数则前端关联参数值等于后端关联参数值多重条件同时满足的情况下认定前端数据与后端数据存在关联调用关系,并且记录前端数据对应的url1和后端数据对应的api1关系出现次数加1。如果关联上了则继续重复此步骤将后端数据变成前端数据继续关联后端数据,直到关联不上或者已是最末端。
例如我们取出步骤2.1中数据集合d中的dweb中的数据
dweb1{url1,rsq_ip1,rsq_port1,rsp_ip1,rsp_port1,star_time1,end_time1,ts_id1},
依次和web应用集群调用的后端集群mid对应的数据集合dmid根据上述规则去判断,比如和
dmid1{api1,rsq_ip2,rsq_port2,rsp_ip2,rsp_port2,star_time2,end_time2,ts_id2}比较,
如果
rsp_ip1=rsq_ip2&star_time1<star_time2&end_time1>end_time2&ts_id1=ts_id2则dweb1与dmid1存在调用关系,那么记录url1->api1的关系出现次数加1,然后再将dmid1作为前端数据和ddb集合中的数据做关联比较,满足条件则同样记录关系,直到关联不上或者不存在后端数据为止。
步骤2.4,取出下一条首端数据执行步骤2.3直到所有首端数据处理完。
步骤2.5,统计所有业务服务前后端存在调用关系的次数,的到业务服务关系集合:
br{{url1,100,api1,100},{url1,100,api2,80},
{api1,100,sql1,100},{api1,100,sql2,80}{api2,80,sql3,80}…}
将上述结果存入数据库。
步骤3.1,根据人工输入的匹配率和首端业务服务请求url查询跟当前业务服务服务url存在调用关系并且匹配率超过输入匹配率的后端所有业务服务,业务服务调用关系匹配率等于步骤2.5br集合关系中后业务服务出现的次数除以前业务服务出现的次数,例如输入匹配率100%和url1做为条件,那么从步骤2.5的br集合中可以查询出url1和api1存在调用关系并且匹配率等于100/100=100%此关系满足条件,然后再继续递归以api1作为前业务服务查找达到匹配率的后业务服务得到aip1->sql1的匹配率满足100%,api1->sql2匹配率80/100=80%不满足。最终得到满足条件的业务服务路径结果集合brs{url1->api1,api1->sql1},如果输入匹配率80%和url1那么brs为
{url1->api1,url1->api2,api1->sql1,api1->sql2,api2->sql3}。
步骤3.2,基于步骤3.1业务服务路径结果集合brs构建成拓扑图展示出来。
步骤3.3,根据拓扑图展示的业务服务路径进行图形化裁剪操作确认得出最终业务服务路径。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communicationsinterface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行基于网络数据的业务服务调用关系路径检测方法,该方法包括:提取待测业务服务的最前端服务;基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于网络数据的业务服务调用关系路径检测方法,该方法包括:提取待测业务服务的最前端服务;基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于网络数据的业务服务调用关系路径检测方法,该方法包括:提取待测业务服务的最前端服务;基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种基于网络数据的业务服务调用关系路径检测方法,其特征在于,包括:
提取待测业务服务的最前端服务;
基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;
其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。
2.根据权利要求1所述的基于网络数据的业务服务调用关系路径检测方法,其特征在于,所述基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计,具体包括:
将截取的网络数据通过传输协议和对应应用协议进行解码得到服务请求响应数据集合;
基于对应于各服务类型的响应ip端口格式将所述服务请求响应数据进行分类得到各类服务请求响应数据子集合;
基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合的任一前端服务和任一后端服务请求响应数据子集合的任一后端服务的调用匹配率。
3.根据权利要求2所述的于网络流量数据的业务服务调用关系路径检测方法,其特征在于,所述基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合的任一前端服务和任一后端服务请求响应数据子集合的任一后端服务的调用匹配率,具体包括:
基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合中任一前端服务和任一后端服务请求响应数据子集合中任一后端服务存在调用关系的次数;
基于所述各类服务请求响应数据子集合确定所述任一前端服务作为前端数据元素在所述任一前端服务请求响应数据子集合中出现的次数;
基于所述存在调用关系的次数与所述出现的次数的比例确定所述任一前端服务请求响应数据子集合的所述任一前端服务和所述任一后端服务请求响应数据子集合的所述任一后端服务的调用匹配率。
4.根据权利要求3所述的基于网络数据的业务服务调用关系路径检测方法,其特征在于,所述基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定业务服务调用关系集合,具体包括:
若基于所述任一前端服务请求响应数据子集合中元素特征参数确定的所述任一前端服务和基于所述任一后端服务请求响应数据子集合中元素特征参数确定的所述任一后端服务的调用匹配率大于预设调用匹配率,则确定所述任一前端服务和所述任一后端服务存在有效调用关系;
基于存在所述有效调用关系的所述任一前端服务和所述任一后端服务组成业务服务调用关系集合。
5.根据权利要求3或4所述的基于网络数据的业务服务调用关系路径检测方法,其特征在于,所述将截取的网络数据通过传输协议和对应应用协议进行解码得到服务请求响应数据集合,具体包括:
基于tcp传输控制协议和对应应用协议将截取的网络数据进行解码,得到服务请求响应数据集合,所述服务请求响应数据集合包括去参数的各类服务请求、所述各类服务的请求开始时间和响应结束时间、所述各类服务的请求ip、所述各类服务的响应ip端口和所述各类服务的关联参数;
对应地,所述基于所述各类服务之间的前后端关系和所述各类服务请求响应数据子集合中元素的网络特征参数确定任一前端服务请求响应数据子集合中任一前端服务和任一后端服务请求响应数据子集合中任一后端服务存在调用关系,具体包括:
基于所述各类服务请求响应数据子集合中元素的网络特征参数和所述各类服务之间的前后端关系确定任一前端服务请求响应数据子集合中任一前端服务的请求开始时间t1、所述任一前端服务的响应结束时间t2、所述任一前端服务的响应ip、所述任一前端服务的关联参数p1、任一后端服务请求响应数据子集合中任一后端服务的请求开始时间
若确定ipfront-back=ip、
6.根据权利要求5所述的基于网络数据的业务服务调用关系路径检测方法,其特征在于,所述基于对应于各服务类型的响应ip端口格式将所述服务请求响应数据进行分类得到各类服务请求响应数据子集合,具体包括:
基于预设查询规则从所述服务请求响应数据中截取预设时间段内网络数据;
基于各服务类型在服务路径中的响应ip端口格式将所述预设时间段内网络数据进行分类得到各类服务请求响应数据子集合;
其中,所述预设查询规则为任一服务的请求开始时间大于查询的开始时间、所述任一服务的响应结束时间小于所述查询的结束时间且所述任一服务的响应ip端口符合预设端口配置要求。
7.根据权利要求1-4中任一项所述的基于网络数据的业务服务调用关系路径检测方法,其特征在于,所述网络数据从与所述待测业务服务同一区域网络中截取,具体包括:
所述网络数据是基于所述待测业务服务所属区域网络中接收交换机镜像或者网卡中网络原始流量数据确定的。
8.一种基于网络数据的业务服务调用关系路径检测装置,其特征在于,包括:
提取单元,用于提取待测业务服务的最前端服务;
查询单元,用于基于所述最前端服务从统一业务服务调用关系拓扑图中查询出待测业务服务的调用关系路径;
其中,所述统一业务服务调用关系拓扑图是基于截取的网络数据的网络特征参数进行前后端数据之间调用关系的提取再统计和预设调用匹配条件确定的业务服务调用关系集合构成的,所述网络数据从与所述待测业务服务同一区域网络中截取。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7中任一项所述的基于网络数据的业务服务调用关系路径检测方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7中任一项所述的基于网络数据的业务服务调用关系路径检测方法的步骤。
技术总结