CN114285756B - 服务调用依赖关系分析方法及相关装置 - Google Patents

服务调用依赖关系分析方法及相关装置 Download PDF

Info

Publication number
CN114285756B
CN114285756B CN202010980270.9A CN202010980270A CN114285756B CN 114285756 B CN114285756 B CN 114285756B CN 202010980270 A CN202010980270 A CN 202010980270A CN 114285756 B CN114285756 B CN 114285756B
Authority
CN
China
Prior art keywords
service
link
interface
dependency
analyzed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010980270.9A
Other languages
English (en)
Other versions
CN114285756A (zh
Inventor
彭章龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010980270.9A priority Critical patent/CN114285756B/zh
Publication of CN114285756A publication Critical patent/CN114285756A/zh
Application granted granted Critical
Publication of CN114285756B publication Critical patent/CN114285756B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种服务调用依赖关系分析方法及相关装置,获得待分析链路的完整调用关系链路,按照链路中服务接口由上至下的顺序对各服务接口进行故障模拟及业务功能测试。分析本次故障模拟的服务接口所对应的测试结果,确定该服务接口与调用该服务接口的服务接口之间的依赖关系。重复上述过程直到分析完整个待分析链路中各个服务接口之间的依赖关系,得到整个待分析链路对应的依赖分析结果。该方案自动分析得到调用链路中具有调用关系的服务接口之间的依赖关系,不需要人工梳理分析,避免分析代码的遗漏或分析不准确的情况,从而有效提高依赖分析结果的准确度和分析效率。

Description

服务调用依赖关系分析方法及相关装置
技术领域
本申请涉及计算机技术领域,尤其涉及服务调用依赖关系分析方法及相关装置。
背景技术
相关技术中,服务调用依赖关系分析方案通常是通过人工阅读代码,分析链路上所有的调用关系在调用方调用被调用方通信异常失败(如,调用超时、对方拒绝服务等)后的处理逻辑,以获得具有调用关系的两个服务接口之间的依赖关系。
上述的服务调用依赖关系分析方案,由于存在人工干预,自动化程度较低,且存在分析代码的遗漏或分析不准确的情况,导致分析结果准确性低、以及分析效率低下。
发明内容
有鉴于此,本申请提供了一种服务调用依赖关系分析方法及相关装置,以解决相关技术中采用人工分析代码存在的分析结果不准确、分析效率低下的技术问题,其公开的技术方案包括:
第一方面,本申请提供了一种服务调用依赖关系分析方法,包括:
获取待分析链路包含的各个服务接口的完整调用关系链路;
按照所述完整调用关系链路中的服务接口由上至下的顺序,依次对所述服务接口进行故障模拟,并依次对故障模拟后的链路进行业务功能测试得到测试结果;
分析所述待分析链路中各个服务接口故障模拟后所对应的测试结果,得到所述待分析链路中所有服务接口之间的依赖分析结果,所述依赖分析结果包括具有调用关系的服务接口之间的依赖程度。
在第一方面的一种可能的实现方式中,所述按照所述完整调用关系链路中服务接口由上至下的顺序,依次对所述服务接口进行故障模拟,包括:
当确定当前服务接口为强依赖接口时,依次将所述当前服务接口的下一层具有调用关系的所有服务接口设置为不可调用状态,以实现对所述服务接口进行故障模拟。
在第一方面的一种可能的实现方式中,所述方法还包括:
比较所述待分析链路对应的最新的依赖分析结果与历史依赖分析结果,确定出所述待分析链路中依赖关系发生目标突变类型的目标服务接口;
根据所述目标服务接口及所述目标突变类型,生成告警信息。
在第一方面的一种可能的实现方式中,比较所述待分析链路对应的最新的依赖分析结果与历史依赖分析结果,确定出所述待分析链路中依赖关系发生目标突变类型的目标服务接口,包括:
将所述最新的依赖分析结果与所述历史依赖分析结果进行比较,若所述最新的依赖分析结果中存在新增强依赖关系或由弱依赖转为强依赖的接口,则将所述接口确定为所述目标服务接口;
其中,所述新增强依赖关系包括所述待分析链路中已有两个服务接口之间新增强依赖关系,或者,所述待分析链路新增服务接口,且新增的服务接口与所述待分析链路中任一已有服务接口之间为强依赖关系。
在第一方面的一种可能的实现方式中,所述分析所述待分析链路中各个服务接口故障模拟后所对应的测试结果,得到所述待分析链路的依赖分析结果,包括:
若当前服务接口故障模拟后对应的测试结果为失败,则确定所述当前服务接口为强依赖接口;
若当前服务接口故障模拟后对应的测试结果为成功,则确定所述当前服务接口及所述当前服务接口之后具有调用关系的所有服务接口均为弱依赖接口。
在第一方面的一种可能的实现方式中,所述方法还包括:
对于所述待分析链路中的强依赖接口显示第一预设颜色;
对于所述待分析链路中的弱依赖接口显示不同于所述第一预设颜色的第二预设颜色。
第二方面,本申请还提供了一种服务调用依赖关系分析装置,包括:
调用关系获取模块,用于获取待分析链路包含的各个服务接口的完整调用关系链路;
接口故障模拟和测试模块,用于按照所述完整调用关系链路中的服务接口由上至下的顺序,依次对所述服务接口进行故障模拟,并依次对故障模拟后的链路进行业务功能测试得到测试结果;
依赖分析模块,用于分析所述待分析链路中各个服务接口故障模拟后所对应的测试结果,得到所述待分析链路中所有服务接口之间的依赖分析结果,所述依赖分析结果包括具有调用关系的服务接口之间的依赖程度。
第三方面,本申请还提供了一种用于运行服务调用起来关系分析方法的设备,包括:
处理器和存储器;
其中,所述处理器用于执行所述存储器中存储的程序;
所述存储器用于存储程序,所述程序至少用于:
获取待分析链路包含的各个服务接口的完整调用关系链路;
按照所述完整调用关系链路中服务接口由上至下的顺序,依次对所述服务接口进行故障模拟,并依次对故障模拟后的链路进行业务功能测试得到测试结果;
分析所述待分析链路中各个服务接口故障模拟后所对应的测试结果,得到所述待分析链路中所有服务接口之间的依赖分析结果,所述依赖分析结果包括具有调用关系的服务接口之间的依赖程度。
第四方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上第一方面任一项所述的服务调用依赖关系分析方法。
第五方面,本申请还提供了一种计算机程序产品,当其在计算机设备上执行时,使得所述计算机设备执行上述第一方面任一项所述的服务调用依赖关系分析方法。
本申请提供的服务调用依赖关系分析方法,获得待分析链路的完整调用关系链路,按照链路中服务接口由上至下的顺序依次对服务接口进行故障模拟及业务功能测试。分析本次故障模拟的服务接口所对应的测试结果,确定该服务接口与调用该服务接口的服务接口之间的依赖关系。重复上述过程直到分析完整个待分析链路中所有服务接口之间的依赖关系,得到整个待分析链路对应的依赖分析结果。由上述过程可知,该方案能够自动分析得到调用链路中具有调用关系的服务接口之间的依赖关系,不需要人工梳理分析,自动化程度较高,避免分析代码遗漏或分析不准确的情况,从而有效提高依赖分析结果的准确度和分析效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请实施例提供的一种用于运行服务调用依赖关系分析的***结构示意图;
图2示出了本申请实施例提供的一种调用链路对应的完整调用关系树的结构示意图;
图3示出了本申请实施例提供的一种服务调用依赖关系分析方法的流程图;
图4示出了本申请实施例提供的另一种服务调用依赖关系分析方法的流程图;
图5示出了本申请实施例提供的一种服务调用依赖关系分析装置的结构示意图;
图6示出了本申请实施例提供的另一种服务调用依赖关系分析装置的结构示意图;
图7示出了本申请实施例提供的一种用于运行服务调用依赖关系分析方法的设备的结构示意图。
具体实施方式
本申请提供了一种服务调用依赖关系分析方法及相关装置,将待分析链路的服务接口按照由上至下的顺序进行故障模拟,并对故障模拟后的待分析链路进行业务功能测试,分析测试结果获得当前故障模拟的服务接口与调用该服务接口的服务接口之间的依赖关系。利用该方案能够快速分析出待分析链路上所有具有调用关系的服务接口之间的依赖关系,而且,该方案能够避免出现人工分析时的遗漏或分析不准确的情况,因此,依赖分析结果更准确且分析速度更快。
在详细介绍本申请提供的服务调用依赖关系分析方法之前,下面先结合图1对整个***架构进行说明。
请参见图1,示出了本申请实施例提供的一种用于进行服务调用依赖关系分析的***结构示意图,该***包括业务***1、模调***2和分析***3。
其中,业务***1通常能够提供多种业务功能,每个业务功能通常需要调用多个服务模块实现,例如业务服务Server1调用Server2及ServerN。多个服务模块之间通过服务接口实现相互调用,而一个业务功能所调用的多个服务接口之间的调用关系即调用链路。
模调***2用于分析业务***上报的调用数据得到各个调用链路对应的完整调用关系。
在一种可能的实现方式中,业务***1针对每个调用链路的最上游分别生成msgno(也称为染色ID),之后该调用链路上的每一次服务调用产生的调用数据中都将携带该链路的msgno,将携带msgno的服务调用数据全部上报至模调***2,最后由模调***2对业务***1上报的大量服务调用数据进行聚合分析得到各个调用链路从上至下的完整调用关系。
在一种可能的实现方式中,调用链路对应的完整调用关系可以采用树型结构表示,参见图2,示出了本申请实施例提供的一种调用链路对应的完整调用关系树的结构示意图,如图2所示,方框表示服务接口,带箭头线段表示接口之间的调用关系,箭头指向的接口为被调用接口(也可称为被调用方),相反方向的接口为调用被调用接口的服务接口,也可称为调用方。
依赖关系分析***3利用模调***2得到的调用链路的完整调用关系进行依赖关系分析,得到调用链路中具有调用关系的服务接口的依赖关系。
其中,依赖关系分析***3可以运行在包括至少一台计算机设备的设备集群中。下面将结合图3详细介绍依赖关系分析***的具体分析过程。如图3所示,服务调用依赖关系分析方法可以包括以下步骤:
S11,获取待分析链路包含的各个服务接口的完整调用关系链路。
待分析链路通常是整个业务***中关键业务功能对应的调用链路,可以根据实时应用需求确定。
待分析链路对应的完整调用关系链路可以利用图1中的模调***2分析得到。
S12,按照完整调用关系链路中的服务接口由上至下的顺序,依次对服务接口进行故障模拟,并对故障模拟后的链路进行业务功能测试得到测试结果。
故障模拟是指使被调用接口当前处于无法被调用的状态。
对服务接口进行故障模拟的方式有很多,例如,在基于微服务架构的业务***中,可以在服务发现平台上临时暂停某个服务的方式来模拟故障。或者,通过故障模拟组件进行故障模拟,以使调用方无法调用被调用接口。
在一种可能的实现方式中,可以通过模拟调用某个接口时可能出现的网络故障使被调用接口处于无法被调用的状态。例如,可以通过模拟IP地址或端口的故障等模拟服务接口调用时出现的网络故障,例如,丢包超时、网络拒绝访问等。
对某个接口进行故障模拟后,对该待分析链路进行业务功能测试,得到本次服务接口对应的测试结果。然后,重复进行上述的接口故障模拟和业务功能测试,直到覆盖待分析链路中的所有服务接口。最终,得到待分析链路中所有服务接口对应的测试结果。
如果某一接口故障后对应的测试结果是成功,表明该接口故障后待分析链路依然能够正常实现相应的业务功能,因此,该接口与调用该接口的接口之间是弱依赖关系;反之,如果某一接口故障后对应的测试结果是失败,表明该接口故障后待分析链路无法实现正常的业务功能,因此,该接口与上层接口是强依赖关系。
发明人在研究本申请的过程中发现:在调用链路中,如果当前服务接口与上层的调用接口之间是弱依赖关系,则当前服务接口之后的服务接口也都是弱依赖关系。
在一种可能的实现方式中,在依赖关系分析过程中,如果某个服务接口与上层服务接口之间是弱依赖关系,可以直接将该服务及之后且具有调用关系的所有接口都标记为弱依赖(如图2中的带箭头虚线所示),不需要再针对这些服务接口进行故障模拟和业务功能测试。
如果某个服务接口与上层接口之间是强依赖(如图2中带箭头的实线所示)关系,则继续针对该接口下一层的所有接口进行故障模拟和业务功能测试,直到确定某个接口为弱依赖的接口,或者,直到该接口所在分支的所有接口都分析完。
例如,以图2所示的调用关系树中最左侧的调用分支Server→Server0_service0→Server3_service0→……→ServerN_service0为例说明依赖分析过程:
首先,对第一层的接口Server0_service0进行故障模拟,并对故障模拟后的整个调用链路进行业务功能测试,最终Server0_service0故障后对应的测试结果是失败,确定Server0_service0接口是该链路中强依赖的接口。
然后,对第二层的接口Server3_service0进行故障模拟,并对故障后的整个链路进行业务功能测试,最终得到Server3_service0故障后对应的测试结果是成功,确定Server3_service0接口与上一层的Server0_service0之间是弱依赖关系。
因为第二层接口Server3_service0接口为弱依赖接口,因此,不需要对Server3_service0及其之后的所有接口进行故障模拟和业务功能测试的步骤,直接标记这些接口为弱依赖的接口。
又如,图2中左侧第2个链路分支Server→Server0_service0→Server4_service1→……→ServerN_service1为例说明依赖分析过程:
首先,按由上至下的顺序对该链路分支中未测试的接口Server4_service1进行故障模拟,并对故障模拟后的整个链路进行业务功能测试,得到测试结果是失败,确定Server4_service1接口与上一层的Server0_service0之间是强依赖关系。继续对该链路分支中的第三层接口进行故障模拟和业务功能分析,测试结果仍是失败则确定第三层接口与第二层接口也是强依赖关系,并继续分析下层的接口直到确定某层的接口为弱依赖关系,或者,直到分析完该链路分支中的所有接口。
此外,为了避免全链路依赖关系分析过程对线上的业务***产生影响,将依赖分析过程在内测沙箱环境中进行,即将线上业务***的服务和配置同步到内测沙箱环境中,以保证内测沙箱环境的服务和配置与线上业务***的环境完全一致。
Sandboxie(又叫沙箱、沙盘)即一个虚拟***程序,利用沙箱环境能够实现与线上业务***的完全相同的业务功能,而且与线上业务***之间功能隔离,即不会对线上业务***产生任何影响。
S13,分析待分析链路中各个服务接口故障模拟后所对应的测试结果,得到待分析链路中所有服务接口之间的依赖分析结果。
其中,依赖分析结果包括具有调用关系的服务接口之间的依赖程度,依赖关系按依赖程度划分可以包括强依赖和弱依赖。
若当前服务接口故障模拟后对应的测试结果为失败,则确定所述当前服务接口为强依赖接口;若当前服务接口故障模拟后对应的测试结果为成功,则确定所述当前服务接口及所述当前服务接口之后具有调用关系的所有服务接口均为弱依赖接口。
例如,图2中的Server3_service0与上一层的Server0_service0之间为弱依赖关系,则确定Server3_service0之后所调用的所有接口均为若依赖的接口。
根据整个待分析链路中各个服务接口的测试结果得到各接口与其上一层的接口之间的依赖关系,从而得到整个链路的依赖分析结果。
在一种可能的实现方式中,对于不同依赖关系的服务接口,可以将调用关系树上对应的接口分别显示为不同的颜色。例如,对于强依赖接口显示为第一预设颜色(如,红色),对于弱依赖接口显示为第二预设颜色(如,蓝色),在自动分析得到服务接口之间的依赖关系的基础上,进一步实现自动区分并显示强依赖接口和弱依赖接口。
本实施例提供的服务调用依赖关系分析方法,获得待分析链路的完整调用关系链路,按照链路中服务接口由上至下的顺序依次对服务接口进行故障模拟及业务功能测试。分析本次故障模拟的服务接口所对应的测试结果,确定该服务接口与调用该服务接口的服务接口之间的依赖关系。重复上述过程直到分析完整个待分析链路中各个服务接口之间的依赖关系,得到整个待分析链路对应的依赖分析结果。该方案自动分析得到调用链路中具有调用关系的服务接口之间的依赖关系,不需要人工梳理分析,自动化程度较高,避免分析代码的遗漏或分析不准确的情况,从而有效提高依赖分析结果的准确度和分析效率。
请参见图4,示出了本申请实施例提供的另一种服务调用依赖关系分析方法的流程图,该方法在图3所示实施例的基础上还可以包括以下步骤:
S21,比较待分析链路对应的最新的依赖分析结果与历史依赖分析结果,确定出待分析链路中依赖关系发生目标突变类型的目标服务接口。
每次分析得到整个链路的依赖分析结果存储在后台数据库中,以便后续监测依赖关系的变化情况。
在一种可能的实现方式中,可以每天进行一次依赖关系分析过程,或者,根据需求随时触发依赖关系分析过程。
将最新的依赖分析结果与上一次得到的历史依赖分析结果进行比较,分析待分析链路中的依赖关系发生目标突变类型的服务接口,称为目标服务接口。
其中,目标突变类型可以包括新增强依赖、由原本的弱依赖转为强依赖。其中,新增强依赖包括以下两种情况,一是两个服务接口A和B原本没有依赖关系,本次分析发现A和B之间为强依赖关系;二是新增了服务接口C,且接口C与原有接口B之间为强依赖关系。
S22,根据目标服务接口及目标突变类型,生成告警信息。
当发现最新的依赖分析结果中存在目标突变类型的接口时,生成告警信息通知业务负责人进行相关处理,保证业务***持续稳定及高可用性。
其中,告警信息中可以包括目标服务接口的标识,以及该接口对应的依赖关系突变类型。例如,接口A和接口B之间原本是弱依赖关系,后来转为强依赖,则告警信息中包括接口A和接口B的标识,以及,依赖关系突变的类型。
本实施例提供的服务调用依赖关系分析方法,通过比较最新的依赖分析结果和历史依赖分析结果能够及时发现待分析链路中依赖关系发生突变的接口,并记录关注的突变类型,生成相应的告警信息,便于服务端分析监测,提高分析的准确性,且还便于提醒业务负责人员及时进行处理,保证业务***持续稳定和高可用性。
相应于上述的服务调用依赖关系分析方法实施例,本申请还提供了服务调用依赖关系分析装置实施例。
请参见图5,示出了本申请实施例提供的一种服务调用依赖关系分析装置的结构示意图,该装置运行于图1中的分析***3中,如图5所示,该装置可以包括调用关系获取模块110、接口故障模拟和测试模块120和依赖分析模块130。
调用关系获取模块110,用于获取待分析链路包含的各个服务接口的完整调用关系链路。
接口故障模拟和测试模块120,用于按照所述完整调用关系链路中服务接口由上至下的顺序,依次对所述服务接口进行故障模拟,并依次对故障模拟后的链路进行业务功能测试得到测试结果。
在一种可能的实现方式中,接口故障模拟和测试模块120用于按照所述完整链路调用关系中的调用关系由上至下的顺序,依次对所述待分析链路中的服务接口进行故障模拟时具体用于:
若当前服务接口为强依赖接口,则依次对当前服务接口的下一层具有调用关系的所有服务接口设置为不可被调用状态,以实现服务接口的故障模拟。
对服务接口进行故障模拟的方式有很多,例如,在基于微服务架构的业务***中,可以在服务发现平台上临时暂停某个服务的方式来模拟故障。或者,通过故障模拟组件进行故障模拟,以使调用方无法调用被调用接口。或者,通过模拟IP地址或端口的故障等模拟服务接口调用时出现的网络故障,例如,丢包超时、网络拒绝访问等。
对待分析链路中的服务接口进行故障模拟后,继续利用接口故障模拟和测试模块120对故障模拟后的链路进行业务测试,测试某服务接口故障后该链路是否能够正常实现相应的业务功能,得到测试结果。
依赖分析模块130,用于分析待分析链路中各个服务接口故障模拟后所对应的测试结果,得到待分析链路中所有服务接口之间的依赖分析结果。
依赖分析结果包括具有调用关系的服务接口之间的依赖程度。
若测试结果为成功则确定当前故障模拟的服务接口与调用该接口的接口之间为弱依赖关系。
若测试结果为失败则确定当前故障模拟的服务接口与调用该接口的接口之间为强依赖关系,同时,确定当前服务接口之后的具有调用关系的所有接口均为弱依赖接口。
在本申请的一个实施例中,对于待分析链路对应的完整调用关系树中的强依赖的接口显示为第一预设颜色;对于所述待分析链路的完整调用关系树中的弱依赖的接口显示为不同于所述第一预设颜色的第二预设颜色。
本实施例提供的服务调用依赖关系分析装置,获得待分析链路的完整调用关系链路,按照链路中服务接口由上至下的顺序依次对服务接口进行故障模拟及业务功能测试。分析本次故障模拟的服务接口所对应的测试结果,确定该服务接口与调用该服务接口的服务接口之间的依赖关系。重复上述过程直到分析完整个待分析链路中所有服务接口之间的依赖关系,得到整个待分析链路对应的依赖分析结果。该方案自动分析得到调用链路中具有调用关系的服务接口之间的依赖关系,不需要人工梳理分析,避免分析代码遗漏或分析不准确的情况,从而有效提高依赖分析结果的准确度和分析效率。
在本申请另一个实施例中,每次分析得到链路的依赖分析结果后存储到数据库中,将最新的依赖分析结果与历史依赖分析结果进行对比,以便及时发现链路中发生突变的依赖关系。
请参见图6,示出了本申请实施例提供的另一种服务调用依赖关系分析装置的结构示意图,本实施例中每次得到最新的依赖分析结果后都与历史依赖分析结果进行比较。如图6所示,该装置在图5所示实施例的基础上还包括比较模块210和告警模块220。
比较模块210,用于比较所述待分析链路对应的最新的依赖分析结果与历史依赖分析结果,确定出所述待分析链路中依赖关系发生目标突变类型的目标服务接口。
在一种可能的实现方式中,将最新的依赖分析结果与上一次得到的历史依赖分析结果相比,若最新的依赖分析结果中新增强依赖关系或由弱依赖转为强依赖的接口,则确定该接口为所述目标服务接口;
其中,新增强依赖关系包括所述待分析链路中已有两个服务接口之间新增强依赖关系,或者,所述待分析链路新增服务接口,且新增的服务接口与所述待分析链路中任一已有服务接口之间为强依赖关系。
告警模块220,用于根据目标服务接口及目标突变类型,生成告警信息。
本实施例提供的服务调用依赖关系分析方法,通过比较最新的依赖分析结果和上一次历史依赖分析结果,能够及时发现待分析链路中依赖关系发生突变的接口,并记录关注的突变类型,生成相应的告警信息,以便业务负责人员及时进行处理,保证业务***持续稳定和高可用性。
另一方面,本申请还提供了一种用于运行服务调用依赖关系分析方法的设备,如参见图7,其示出了本申请的电子设备的一种组成结构示意图,本实施例的电子设备可以包括:处理器701和存储器702。
可选的,该终端还可以包括通信接口703、输入单元704和显示器705和通信总线706。
处理器701、存储器702、通信接口703、输入单元704、显示器705、均通过通信总线706完成相互间的通信。
在本申请实施例中,该处理器701,可以为中央处理器(Central ProcessingUnit,CPU),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。
该处理器可以调用存储器702中存储的程序。具体的,处理器可以执行以下消息发送方法的实施例中应用服务器侧所执行的操作。
存储器702中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:
一种服务调用依赖关系分析方法,其特征在于,包括:
获取待分析链路包含的各个服务接口之间调用关系的完整调用关系链路;
按照完整调用关系链路中的调用关系由上至下的顺序,依次对服务接口进行故障模拟,并依次对故障模拟后的链路进行业务功能测试得到测试结果;
分析所述待分析链路中各个服务接口故障模拟后所对应的测试结果,得到所述待分析链路中所有服务接口之间的依赖分析结果,所述依赖分析结果包括具有调用关系的服务接口之间的依赖程度。
在一种可能的实现方式中,所述按照所述完整调用关系链路中服务接口由上至下的顺序,依次对服务接口进行故障模拟,包括:
若确定当前服务接口为强依赖接口,则依次使所述当前服务接口的下一层具有调用关系的所有服务接口处于不可被调用状态,以实现服务接口的故障模拟;
在另一种可能的实现方式中,所述方法还包括:
比较所述待分析链路对应的最新的依赖分析结果与历史依赖分析结果,确定出所述待分析链路中依赖关系发生目标突变类型的目标服务接口;
根据所述目标服务接口及目标突变类型,生成告警信息。
在另一种可能的实现方式中,比较所述待分析链路对应的最新的依赖分析结果与历史依赖分析结果,确定出所述待分析链路中依赖关系发生目标类型突变的目标服务接口,包括:
将最新的依赖分析结果与所述历史依赖分析结果相比,若所述最新的依赖分析结果中存在新增强依赖关系或由弱依赖转为强依赖的接口,则确定该接口为所述目标服务接口;
其中,所述新增强依赖关系包括所述待分析链路中已有两个服务接口之间新增强依赖关系,或者,所述待分析链路新增服务接口,且新增的服务接口与所述待分析链路中任一已有服务接口之间为强依赖关系。
在另一种可能的实现方式中,所述分析所述待分析链路中各个服务接口故障模拟后所对应的测试结果,得到所述待分析链路中所有服务接口之间的依赖分析结果,包括:
若当前服务接口故障模拟后对应的测试结果为失败,则确定所述当前服务接口为强依赖接口;
若当前服务接口故障模拟后对应的测试结果为成功,则确定所述当前服务接口及所述当前服务接口之后具有调用关系的所有服务接口均为弱依赖接口。
在另一种可能的实现方式中,所述方法还包括:
对于所述待分析链路中的强依赖的接口显示第一预设颜色;
对于所述待分析链路中的弱依赖的接口显示不同于所述第一预设颜色的第二预设颜色。
在一种可能的实现方式中,该存储器702可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、以及至少一个功能(比如图像播放功能等)所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据,比如,用户数据及图像数据等等。
此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
该通信接口703可以为通信模块的接口,如GSM模块的接口。
本申请还可以包括显示器704和输入单元705等等。
当然,图7所示的终端的结构并不构成对本申请实施例中终端的限定,在实际应用中终端可以包括比图7所示的更多或更少的部件,或者组合某些部件。
另一方面,本申请实施例还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上任意一个实施例所述的服务调用依赖关系分析方法。
又一方面,本申请实施例还提供了一种计算机程序产品,当其在计算机设备上执行时,使得该计算机设备执行上述任意一个实施例所述的服务调用依赖关系分析方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (13)

1.一种服务调用依赖关系分析方法,其特征在于,包括:
获取待分析链路包含的各个服务接口的完整调用关系链路;
按照所述完整调用关系链路中服务接口由上至下的顺序,依次对所述服务接口进行故障模拟,并依次对故障模拟后的链路进行业务功能测试得到测试结果;
分析所述待分析链路中各个服务接口故障模拟后所对应的测试结果,得到所述待分析链路中所有服务接口之间的依赖分析结果,具体包括,若当前服务接口故障模拟后对应的测试结果为失败,则确定所述当前服务接口为强依赖接口;若当前服务接口故障模拟后对应的测试结果为成功,则确定所述当前服务接口及所述当前服务接口之后具有调用关系的所有服务接口均为弱依赖接口;所述依赖分析结果包括具有调用关系的服务接口之间的依赖程度。
2.根据权利要求1所述的方法,其特征在于,所述按照所述完整调用关系链路中服务接口由上至下的顺序,依次对所述服务接口进行故障模拟,包括:
当确定当前服务接口为强依赖接口时,依次将所述当前服务接口的下一层具有调用关系的所有服务接口设置为不可被调用状态,以实现所述服务接口的故障模拟。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
比较所述待分析链路对应的最新的依赖分析结果与历史依赖分析结果,确定出所述待分析链路中依赖关系发生目标突变类型的目标服务接口;
根据所述目标服务接口及所述目标突变类型,生成告警信息。
4.根据权利要求3所述的方法,其特征在于,所述比较所述待分析链路对应的最新的依赖分析结果与历史依赖分析结果,确定出所述待分析链路中依赖关系发生目标突变类型的目标服务接口,包括:
将所述最新的依赖分析结果与所述历史依赖分析结果进行比较,若所述最新的依赖分析结果中存在新增强依赖关系或由弱依赖转为强依赖的接口,则将所述接口确定为所述目标服务接口;
其中,所述新增强依赖关系包括所述待分析链路中已有两个服务接口之间新增强依赖关系,或者,所述待分析链路新增服务接口,且新增的服务接口与所述待分析链路中任一已有服务接口之间为强依赖关系。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于所述待分析链路中的强依赖接口显示第一预设颜色;
对于所述待分析链路中的弱依赖接口显示不同于所述第一预设颜色的第二预设颜色。
6.一种服务调用依赖关系分析装置,其特征在于,包括:
调用关系获取模块,用于获取待分析链路包含的各个服务接口的完整调用关系链路;
接口故障模拟和测试模块,用于按照所述完整调用关系链路中的服务接口由上至下的顺序,依次对所述服务接口进行故障模拟,并依次对故障模拟后的链路进行业务功能测试得到测试结果;
依赖分析模块,用于分析所述待分析链路中各个服务接口故障模拟后所对应的测试结果,得到所述待分析链路中所有服务接口之间的依赖分析结果,具体包括,若当前服务接口故障模拟后对应的测试结果为失败,则确定所述当前服务接口为强依赖接口;若当前服务接口故障模拟后对应的测试结果为成功,则确定所述当前服务接口及所述当前服务接口之后具有调用关系的所有服务接口均为弱依赖接口;所述依赖分析结果包括具有调用关系的服务接口之间的依赖程度。
7.根据权利要求6所述的装置,其特征在于,所述接口故障模拟和测试模块,具体用于:
若当前服务接口为强依赖接口,则依次将所述当前服务接口的下一层具有调用关系的所有服务接口设置为不可被调用状态,以实现所述服务接口的故障模拟。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
比较模块,用于比较所述待分析链路对应的最新的依赖分析结果与历史依赖分析结果,确定出所述待分析链路中依赖关系发生目标突变类型的目标服务接口;
告警模块,用于根据所述目标服务接口及所述目标突变类型,生成告警信息。
9.根据权利要求8所述的装置,其特征在于,所述比较模块,具体用于:
将所述最新的依赖分析结果与所述历史依赖分析结果进行比较,若所述最新的依赖分析结果中存在新增强依赖关系或由弱依赖转为强依赖的接口,则将所述接口确定为所述目标服务接口;
其中,所述新增强依赖关系包括所述待分析链路中已有两个服务接口之间新增强依赖关系,或者,所述待分析链路新增服务接口,且新增的服务接口与所述待分析链路中任一已有服务接口之间为强依赖关系。
10.根据权利要求6所述的装置,其特征在于,所述装置还用于:
对于所述待分析链路中的强依赖接口显示第一预设颜色;
对于所述待分析链路中的弱依赖接口显示不同于所述第一预设颜色的第二预设颜色。
11.一种用于运行服务调用起来关系分析方法的设备,其特征在于,包括:
处理器和存储器;
其中,所述处理器用于执行所述存储器中存储的程序;
所述存储器用于存储程序,所述程序至少用于:
获取待分析链路包含的各个服务接口的完整调用关系链路;
按照所述完整调用关系链路中的服务接口由上至下的顺序,依次对所述服务接口进行故障模拟,并依次对故障模拟后的链路进行业务功能测试得到测试结果;
分析所述待分析链路中各个服务接口故障模拟后所对应的测试结果,得到所述待分析链路中所有服务接口之间的依赖分析结果,具体包括,若当前服务接口故障模拟后对应的测试结果为失败,则确定所述当前服务接口为强依赖接口;若当前服务接口故障模拟后对应的测试结果为成功,则确定所述当前服务接口及所述当前服务接口之后具有调用关系的所有服务接口均为弱依赖接口;所述依赖分析结果包括具有调用关系的服务接口之间的依赖程度。
12.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1-5任一项所述的服务调用依赖关系分析方法。
13.一种计算机程序产品,其特征在于,当其在计算机设备上执行时,使得所述计算机设备执行如上权利要求1-5任一项所述的服务调用依赖关系分析方法。
CN202010980270.9A 2020-09-17 2020-09-17 服务调用依赖关系分析方法及相关装置 Active CN114285756B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010980270.9A CN114285756B (zh) 2020-09-17 2020-09-17 服务调用依赖关系分析方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010980270.9A CN114285756B (zh) 2020-09-17 2020-09-17 服务调用依赖关系分析方法及相关装置

Publications (2)

Publication Number Publication Date
CN114285756A CN114285756A (zh) 2022-04-05
CN114285756B true CN114285756B (zh) 2024-06-25

Family

ID=80867350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010980270.9A Active CN114285756B (zh) 2020-09-17 2020-09-17 服务调用依赖关系分析方法及相关装置

Country Status (1)

Country Link
CN (1) CN114285756B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150279A (zh) * 2022-07-06 2022-10-04 中国银行股份有限公司 业务链路信息的获取方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488267A (zh) * 2019-01-25 2020-08-04 北京搜狗科技发展有限公司 一种接口测试脚本的生成方法、装置及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790718A (zh) * 2017-03-16 2017-05-31 北京搜狐新媒体信息技术有限公司 服务调用链路分析方法及***
CN108768793B (zh) * 2018-07-11 2021-09-17 郑州云海信息技术有限公司 一种存储双活链路故障测试方法及装置
CN110858810B (zh) * 2018-08-24 2021-07-30 ***通信集团四川有限公司 网络链路状态监测方法、设备、***及介质
CN110351136B (zh) * 2019-07-04 2022-06-28 创新先进技术有限公司 一种故障定位方法和装置
CN110532168B (zh) * 2019-07-05 2024-03-29 中国平安财产保险股份有限公司 全链路接口压测方法、装置、计算机设备及存储介质
CN111385147B (zh) * 2020-03-06 2021-07-27 腾讯科技(深圳)有限公司 故障模拟方法、装置和计算机可读存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488267A (zh) * 2019-01-25 2020-08-04 北京搜狗科技发展有限公司 一种接口测试脚本的生成方法、装置及电子设备

Also Published As

Publication number Publication date
CN114285756A (zh) 2022-04-05

Similar Documents

Publication Publication Date Title
JP2018185808A (ja) ブロックチェーンに基づくスマート契約をテストする装置及び方法
CN105005532B (zh) 一种自动化测试应用程序接口稳定性的***及方法
US11093374B2 (en) System and method for continuous testing and delivery of software
CN108509212B (zh) 应用程序更新测试方法、装置、终端设备及存储介质
TW201941058A (zh) 異常檢測方法及裝置
CN110321273A (zh) 一种业务统计方法及装置
CN112631846A (zh) 一种故障演练方法、装置、计算机设备及存储介质
CN111290941A (zh) 多个接口的测试方法、装置、计算设备和介质
CN110865941A (zh) 接口测试用例生成方法、装置和***
CN109828920A (zh) 一种日志分析方法、装置及计算机可读存储介质
CN110941632A (zh) 一种数据库审计方法、装置及设备
CN114285756B (zh) 服务调用依赖关系分析方法及相关装置
CN111858354A (zh) 自动生成测试报告的方法、装置、存储介质及电子设备
CN111708712A (zh) 用户行为测试用例的生成方法、流量回放方法及电子设备
CN111221721B (zh) 一种单元测试案例自动化录制和执行方法及装置
CN111651342A (zh) 基于Charles录制会话的HTTP接口自动化测试框架
CN113238935A (zh) 应用测试方法、***、设备、介质及计算机程序产品
CN111158979A (zh) 服务的拨测方法、***、装置及存储介质
CN113934642B (zh) 一种基于动静态结合的软件兼容性测试方法
CN113238901B (zh) 多设备的自动化测试方法及装置、存储介质、计算机设备
CN116010244A (zh) 自动化测试方法、装置、电子设备及存储介质
CN107102938B (zh) 测试脚本的更新方法及装置
CN113032255A (zh) 响应噪音的识别方法、模型、电子设备及计算机存储介质
CN113377682A (zh) 服务测试方法及装置
CN111160403A (zh) 一种api接口复用发现的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant