微服务的检测方法及装置、存储介质和电子设备与流程
未命名
10-18
阅读:80
评论:0
1.本技术涉及金融科技领域,具体而言,涉及一种微服务的检测方法及装置、存储介质和电子设备。
背景技术:
2.目前,在分布式环境下,特别是微服务架构下,由于层次众多,服务众多,在服务设计或者编码过程中,有可能会出现服务调用闭环导致死循环的情况。而且,图1是本技术实施例中服务调用分支的示意图,比如图1中的n3,为同一笔功能调用中的同为被调和调用的服务,这样会违背服务分层的架构设计原则,并且会产生不可预知的程序问题(比如死循环)。因此,需要在版本发布前全面扫描相关服务调用的信息,以排查这类设计编码上的问题。
3.而且,相关技术中为了解决服务调用闭环导致死循环的问题,一般是通过登记的服务调用关系去整理出调用链条的全景,判断一个服务是否在一个链条上出现两次。
4.但是,相关技术存在以下缺点:
5.第一点,通过调用链条的全景判断,一般是通过配置文件或者资源系统上的登记来整理出全景信息,如果实际的程序编码产生的服务调用跟登记存在偏差,则无从排查出真实情况。
6.第二点,登记的调用关系并不能完整的反应出实际的功能分支调用,比如要满足一定条件才会调用到下一个服务,否则其实是走另一个分支或者直接结束。以图1为例,n5-n10只有在某种功能流程下(比如业务类型是a,买卖类型是b,金额为》10000)才会触发,而这个流程是不是从n3传递而来,这样n3-n5-n10-n3的调用链条就不会存在,而调用链条的全景就会产生实际偏差。
7.针对相关技术中检测微服务在调用的过程中是否存在闭环情况的准确性较低,导致容易出现死循环的情况的问题,目前尚未提出有效的解决方案。
技术实现要素:
8.本技术的主要目的在于提供一种微服务的检测方法及装置、存储介质和电子设备,以解决相关技术中检测微服务在调用的过程中是否存在闭环情况的准确性较低,导致容易出现死循环的情况的问题。
9.为了实现上述目的,根据本技术的一个方面,提供了一种微服务的检测方法。该方法包括:确定待检测的n个微服务,其中,n为大于1的正整数;通过所述n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,所述n个微服务中的微服务发送所述第二脉冲信息的时间间隔小于发送所述第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数;依据所述s个第一脉冲信息和所述t个第二脉冲信息,确定对所述n个微服务的检测结果,其中,所述检测结果用于表示所述n个微服务在调用的过程中是否存在闭环的情况。
10.进一步地,依据所述s个第一脉冲信息和所述t个第二脉冲信息,确定对所述n个微服务的检测结果包括:获取所述s个第一脉冲信息中的第一脉冲信息到达目标微服务所需的第一时间段,其中,所述目标微服务为所述n个微服务中的微服务;获取所述t个第二脉冲信息中的第二脉冲信息到达所述目标微服务所需的第二时间段;依据所述第一时间段和所述第二时间段,确定对所述n个微服务的检测结果。
11.进一步地,依据所述第一时间段和所述第二时间段,确定对所述n个微服务的检测结果包括:判断所述第一时间段和所述第二时间段是否相同;若所述第一时间段和所述第二时间段相同,则获取第一源节点的id信息和第二源节点的id信息,其中,所述第一源节点为所述s个第一脉冲信息中的第一脉冲信息对应的源节点,所述第二源节点为所述t个第二脉冲信息中的第二脉冲信息对应的源节点;依据所述第一源节点的id信息和所述第二源节点的id信息,确定对所述n个微服务的检测结果;若所述第一时间段和所述第二时间段不同,则表示所述n个微服务在调用的过程中不存在闭环的情况。
12.进一步地,依据所述第一源节点的id信息和所述第二源节点的id信息,确定对所述n个微服务的检测结果包括:判断所述第一源节点的id信息和所述第二源节点的id信息是否相同;若所述第一源节点的id信息和所述第二源节点的id信息相同,则表示所述n个微服务在调用的过程中存在闭环的情况;若所述第一源节点的id信息和所述第二源节点的id信息不同,则表示所述n个微服务在调用的过程中不存在闭环的情况。
13.进一步地,在若所述第一源节点的id信息和所述第二源节点的id信息相同,则表示所述n个微服务在调用的过程中存在闭环的情况之后,所述方法还包括:从所述n个微服务中确定第一微服务,其中,所述第一微服务所在的节点为所述第一源节点;在当前时间点达到预设时刻时,分别通过所述目标微服务和所述第一微服务发送第三脉冲信息;依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点,其中,所述入环节点为所述n个微服务在调用过程中的闭环的起始节点。
14.进一步地,依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点包括:获取通过所述目标微服务发送所述第三脉冲信息到达第二微服务所需的第三时间段,其中,所述第二微服务为所述n个微服务中的微服务;获取通过所述第一微服务发送所述第三脉冲信息到达所述第二微服务所需的第四时间段;在所述第三时间段和所述第四时间段相同的情况下,确定所述第二微服务所在的节点为所述入环节点。
15.进一步地,在依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点之后,所述方法还包括:确定与所述入环节点相关联的节点;基于与所述入环节点相关联的节点,对所述n个微服务在调用过程中的闭环进行处理。
16.进一步地,通过所述n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息包括:获取目标信息表,其中,所述目标信息表中至少包括:所述n个微服务中每个微服务的id信息、每个微服务的下一个微服务的id信息;依据所述目标信息表,从所述n个微服务中确定每个微服务的下一个微服务;基于每个微服务的下一个微服务,确定y个目标节点,其中,所述y个目标节点为每个微服务的下一个微服务所在的节点,y为大于1的正整数;通过所述n个微服务中的每个微服务向每个目标节点发送不同类型的脉冲信息,得到所述s个第一脉冲信息和所述t个第二脉冲信息。
17.为了实现上述目的,根据本技术的另一方面,提供了一种微服务的检测装置。该装
置包括:第一确定单元,用于确定待检测的n个微服务,其中,n为大于1的正整数;第二确定单元,用于通过所述n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,所述n个微服务中的微服务发送所述第二脉冲信息的时间间隔小于发送所述第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数;第三确定单元,用于依据所述s个第一脉冲信息和所述t个第二脉冲信息,确定对所述n个微服务的检测结果,其中,所述检测结果用于表示所述n个微服务在调用的过程中是否存在闭环的情况。
18.进一步地,所述第三确定单元包括:第一获取子单元,用于获取所述s个第一脉冲信息中的第一脉冲信息到达目标微服务所需的第一时间段,其中,所述目标微服务为所述n个微服务中的微服务;第二获取子单元,用于获取所述t个第二脉冲信息中的第二脉冲信息到达所述目标微服务所需的第二时间段;第一确定子单元,用于依据所述第一时间段和所述第二时间段,确定对所述n个微服务的检测结果。
19.进一步地,所述第一确定子单元包括:第一判断模块,用于判断所述第一时间段和所述第二时间段是否相同;第一获取模块,用于若所述第一时间段和所述第二时间段相同,则获取第一源节点的id信息和第二源节点的id信息,其中,所述第一源节点为所述s个第一脉冲信息中的第一脉冲信息对应的源节点,所述第二源节点为所述t个第二脉冲信息中的第二脉冲信息对应的源节点;第一确定模块,用于依据所述第一源节点的id信息和所述第二源节点的id信息,确定对所述n个微服务的检测结果;第二确定模块,用于若所述第一时间段和所述第二时间段不同,则表示所述n个微服务在调用的过程中不存在闭环的情况。
20.进一步地,所述第一确定模块包括:第一判断子模块,用于判断所述第一源节点的id信息和所述第二源节点的id信息是否相同;第一确定子模块,用于若所述第一源节点的id信息和所述第二源节点的id信息相同,则表示所述n个微服务在调用的过程中存在闭环的情况;第二确定子模块,用于若所述第一源节点的id信息和所述第二源节点的id信息不同,则表示所述n个微服务在调用的过程中不存在闭环的情况。
21.进一步地,所述装置还包括:第四确定单元,用于在若所述第一源节点的id信息和所述第二源节点的id信息相同,则表示所述n个微服务在调用的过程中存在闭环的情况之后,从所述n个微服务中确定第一微服务,其中,所述第一微服务所在的节点为所述第一源节点;第一发送单元,用于在当前时间点达到预设时刻时,分别通过所述目标微服务和所述第一微服务发送第三脉冲信息;第五确定单元,用于依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点,其中,所述入环节点为所述n个微服务在调用过程中的闭环的起始节点。
22.进一步地,所述第五确定单元包括:第三获取子单元,用于获取通过所述目标微服务发送所述第三脉冲信息到达第二微服务所需的第三时间段,其中,所述第二微服务为所述n个微服务中的微服务;第四获取子单元,用于获取通过所述第一微服务发送所述第三脉冲信息到达所述第二微服务所需的第四时间段;第二确定子单元,用于在所述第三时间段和所述第四时间段相同的情况下,确定所述第二微服务所在的节点为所述入环节点。
23.进一步地,所述装置还包括:第六确定单元,用于在依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点之后,确定与所述入环节点相关联的节点;第一处理单元,用于基于与所述入环节点相关联的节点,对所述n个微服务在
调用过程中的闭环进行处理。
24.进一步地,所述第二确定单元包括:第五获取子单元,用于获取目标信息表,其中,所述目标信息表中至少包括:所述n个微服务中每个微服务的id信息、每个微服务的下一个微服务的id信息;第三确定子单元,用于依据所述目标信息表,从所述n个微服务中确定每个微服务的下一个微服务;第四确定子单元,用于基于每个微服务的下一个微服务,确定y个目标节点,其中,所述y个目标节点为每个微服务的下一个微服务所在的节点,y为大于1的正整数;第五确定子单元,用于通过所述n个微服务中的每个微服务向每个目标节点发送不同类型的脉冲信息,得到所述s个第一脉冲信息和所述t个第二脉冲信息。
25.为了实现上述目的,根据本技术的另一方面,提供了一种计算机可读存储介质,所述存储介质存储程序,其中,所述程序执行上述的任意一项所述的微服务的检测方法。
26.为了实现上述目的,根据本技术的另一方面,提供了一种电子设备,所述电子设备包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的任意一项所述的微服务的检测方法。
27.通过本技术,采用以下步骤:确定待检测的n个微服务,其中,n为大于1的正整数;通过n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,n个微服务中的微服务发送第二脉冲信息的时间间隔小于发送第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数;依据s个第一脉冲信息和t个第二脉冲信息,确定对n个微服务的检测结果,其中,检测结果用于表示n个微服务在调用的过程中是否存在闭环的情况,解决了相关技术中检测微服务在调用的过程中是否存在闭环情况的准确性较低,导致容易出现死循环的情况的问题。通过确定待检测的n个微服务,并通过n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,再依据s个第一脉冲信息和t个第二脉冲信息,确定对n个微服务在调用的过程中是否存在闭环情况的检测结果,从而提升了检测微服务在调用的过程中是否存在闭环情况的准确性,进而达到了避免出现死循环的情况的效果。
附图说明
28.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
29.图1是本技术实施例中服务调用分支的示意图;
30.图2是根据本技术实施例提供的微服务的检测方法的流程图;
31.图3是本技术实施例中对微服务相关节点进行改造的示意图;
32.图4是本技术实施例中服务网格控制面板记录“相遇”节点的示意图;
33.图5是根据本技术实施例提供的微服务的检测装置的示意图;
34.图6是根据本技术实施例提供的电子设备的示意图。
具体实施方式
35.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
36.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
37.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
38.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
39.为了便于描述,以下对本技术实施例涉及的部分名词或术语进行说明:
40.父子事件编号:从服务调用的源头发起一次功能调用(生成根的父事件编号),沿着服务之间的调用链,会在每一次服务之间调用发生时,生成被调用方的相应的子事件编号,调用方已有的事件编号称之为此次服务调用的父事件编号。
41.aop(aspect oriented programming):面向切面编程。在程序运行某个方法的时候,不修改原始执行代码逻辑,由程序动态地执行某些额外的功能,对原有的方法做增强。
42.下面结合优选的实施步骤对本发明进行说明,图2是根据本技术实施例提供的微服务的检测方法的流程图,如图2所示,该方法包括如下步骤:
43.步骤s210,确定待检测的n个微服务,其中,n为大于1的正整数。
44.例如,上述的待检测的n个微服务可以为图1中的n1、n2、n3、n4和n5等微服务。然后可以检测图1中的这些微服务在调用时是否存在闭环的情况。
45.步骤s220,通过n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,n个微服务中的微服务发送第二脉冲信息的时间间隔小于发送第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数。
46.例如,可以从图1中的源头n1服务开始,向其所在的节点发送长脉冲(上述的第一脉冲信息)和短脉冲(上述的第二脉冲信息),然后以此类推,再可以从n1服务的下一个服务n2服务开始,向其所在的节点发送长脉冲(上述的第一脉冲信息)和短脉冲(上述的第二脉冲信息)。比如,短脉冲(上述的第二脉冲信息)的定时间隔可以是0.5s,长脉冲(上述的第一脉冲信息)的定时间隔可以是1s。
47.步骤s230,依据s个第一脉冲信息和t个第二脉冲信息,确定对n个微服务的检测结果,其中,检测结果用于表示n个微服务在调用的过程中是否存在闭环的情况。
48.例如,可以根据每个微服务发送的长短脉冲,检测图1中的这些微服务(n个微服务)在调用的过程中是否存在闭环的情况。
49.需要说明的是,本技术实施例提供的微服务的检测方法可以应用于金融场景中。
50.通过上述的步骤s210至s230,通过确定待检测的n个微服务,并通过n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,再依据s个第一脉冲信息和t个第二脉冲信息,确定对n个微服务在调用的过程中是否存在闭环情况的检测结果,从而提升了检测微服务在调用的过程中是否存在闭环情况的准确性,进而达到了避免出现死循环的情况的效果。
51.可选地,在本技术实施例提供的微服务的检测方法中,通过n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息包括:获取目标信息表,其中,目标信息表中至少包括:n个微服务中每个微服务的id信息(internet protocol,互联网协议)、每个微服务的下一个微服务的id信息;依据目标信息表,从n个微服务中确定每个微服务的下一个微服务;基于每个微服务的下一个微服务,确定y个目标节点,其中,y个目标节点为每个微服务的下一个微服务所在的节点,y为大于1的正整数;通过n个微服务中的每个微服务向每个目标节点发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息。
52.例如,可以在微服务节点上的网络协议栈增加特定的暂存区,并部署脉冲服务。而且,在做覆盖性测试的每一次微服务之间的调用发生的时候,可以在每一个微服务所处的节点处,记录本次服务调用的父子事件编号、当前服务id、下一个服务id,并且可以以如表1所示的“服务-事件信息表”(上述的目标信息表)的格式储存在该节点的暂存区。
53.表1
[0054][0055]
然后,在覆盖性测试完成后,可以从微服务框架下服务调用的源头开始,扫描各个节点中的“服务-事件信息表”(上述的目标信息表),并以定时脉冲的方式,脉冲服务向下一个服务id所在节点发送长短两种脉冲消息,长短脉冲的定时间隔可以相差一倍,且脉冲消息可以包含源节点id、源事件编号、当前子事件编号、当前服务id、当前脉冲长短标志。
[0056]
通过上述的方案,可以快速准确的由脉冲服务向下一个服务id所在节点发送长短脉冲消息。
[0057]
可选地,在本技术实施例提供的微服务的检测方法中,依据s个第一脉冲信息和t个第二脉冲信息,确定对n个微服务的检测结果包括:获取s个第一脉冲信息中的第一脉冲信息到达目标微服务所需的第一时间段,其中,目标微服务为n个微服务中的微服务;获取t个第二脉冲信息中的第二脉冲信息到达目标微服务所需的第二时间段;依据第一时间段和第二时间段,确定对n个微服务的检测结果。
[0058]
例如,上述的s个第一脉冲信息中的第一脉冲信息可以是图1中的n1服务发送的长脉冲,上述的t个第二脉冲信息中的第二脉冲信息可以是图1中的n1服务发送的短脉冲,上述的目标微服务可以是图1中的n12服务。然后可以计算n1服务发送的长脉冲到达n12服务所用的时间(上述的第一时间段),并计算n1服务发送的短脉冲到达n12服务所用的时间(上述的第二时间段),并根据n1服务发送的长脉冲到达n12服务所用的时间(上述的第一时间
段)和n1服务发送的短脉冲到达n12服务所用的时间(上述的第二时间段),检测微服务在调用的过程中是否存在闭环情况。
[0059]
通过上述的方案,根据长短脉冲到达同一个微服务所用的时间信息,可以快速准确的检测微服务在调用的过程中是否存在闭环的情况。
[0060]
可选地,在本技术实施例提供的微服务的检测方法中,依据第一时间段和第二时间段,确定对n个微服务的检测结果包括:判断第一时间段和第二时间段是否相同;若第一时间段和第二时间段相同,则获取第一源节点的id信息和第二源节点的id信息,其中,第一源节点为s个第一脉冲信息中的第一脉冲信息对应的源节点,第二源节点为t个第二脉冲信息中的第二脉冲信息对应的源节点;依据第一源节点的id信息和第二源节点的id信息,确定对n个微服务的检测结果;若第一时间段和第二时间段不同,则表示n个微服务在调用的过程中不存在闭环的情况。
[0061]
例如,如果n1服务发送的长脉冲到达n12服务所用的时间(上述的第一时间段)和n1服务发送的短脉冲到达n12服务所用的时间(上述的第二时间段)相同,则确定该长脉冲(上述的s个第一脉冲信息中的第一脉冲信息)对应的源节点的id信息,避过确定该短脉冲(上述的t个第二脉冲信息中的第二脉冲信息)对应的源节点的id信息,再根据该长脉冲(上述的s个第一脉冲信息中的第一脉冲信息)对应的源节点的id信息和该短脉冲(上述的t个第二脉冲信息中的第二脉冲信息)对应的源节点的id信息,确定微服务在调用的过程中是否存在闭环情况。如果n1服务发送的长脉冲到达n12服务所用的时间(上述的第一时间段)和n1服务发送的短脉冲到达n12服务所用的时间(上述的第二时间段)不相同,则确定微服务在调用的过程中不存在闭环的情况。
[0062]
通过上述的方案,可以快速准的确定长短脉冲分别对应的源节点的id信息。
[0063]
可选地,在本技术实施例提供的微服务的检测方法中,依据第一源节点的id信息和第二源节点的id信息,确定对n个微服务的检测结果包括:判断第一源节点的id信息和第二源节点的id信息是否相同;若第一源节点的id信息和第二源节点的id信息相同,则表示n个微服务在调用的过程中存在闭环的情况;若第一源节点的id信息和第二源节点的id信息不同,则表示n个微服务在调用的过程中不存在闭环的情况。
[0064]
例如,可以判断该长脉冲(上述的s个第一脉冲信息中的第一脉冲信息)对应的源节点的id信息和该短脉冲(上述的t个第二脉冲信息中的第二脉冲信息)对应的源节点的id信息是否相同,如果该长脉冲(上述的s个第一脉冲信息中的第一脉冲信息)对应的源节点的id信息和该短脉冲(上述的t个第二脉冲信息中的第二脉冲信息)对应的源节点的id信息相同,则确定微服务在调用的过程中存在闭环的情况。如果该长脉冲(上述的s个第一脉冲信息中的第一脉冲信息)对应的源节点的id信息和该短脉冲(上述的t个第二脉冲信息中的第二脉冲信息)对应的源节点的id信息不相同,则确定微服务在调用的过程中不存在闭环的情况。
[0065]
通过上述的方案,根据长短脉冲分别对应的源节点的id信息,可以快速准确的检测微服务在调用的过程中是否存在闭环的情况。
[0066]
可选地,在本技术实施例提供的微服务的检测方法中,在若第一源节点的id信息和第二源节点的id信息相同,则表示n个微服务在调用的过程中存在闭环的情况之后,该方法还包括:从n个微服务中确定第一微服务,其中,第一微服务所在的节点为第一源节点;在
当前时间点达到预设时刻时,分别通过目标微服务和第一微服务发送第三脉冲信息;依据分别通过目标微服务和第一微服务发送的第三脉冲信息,确定入环节点,其中,入环节点为n个微服务在调用过程中的闭环的起始节点。
[0067]
例如,可以从源节点(比如图1中n1服务所在的节点)和“相遇”节点(比如图1中n12服务所在的节点)同时发起相同定时间隔的“入环点”脉冲(上述的第三脉冲信息)。而且,“入环点”脉冲在源节点根据源事件编号查找服务-事件信息表进行精准发送;“入环点”脉冲在“相遇节点”根据源节点id和源事件编号查找脉冲信息表定位到对应记录后,根据该记录的父事件编号字段查找服务-事件信息表进行精准发送。避过可以根据从源节点(比如图1中n1服务所在的节点)和“相遇”节点(比如图1中n12服务所在的节点)同时发起相同定时间隔的“入环点”脉冲(上述的第三脉冲信息)确定入环节点。
[0068]
综上所述,可以通过发送入环脉冲的方式确定微服务在调用的过程中的闭环的入环节点。
[0069]
可选地,在本技术实施例提供的微服务的检测方法中,依据分别通过目标微服务和第一微服务发送的第三脉冲信息,确定入环节点包括:获取通过目标微服务发送第三脉冲信息到达第二微服务所需的第三时间段,其中,第二微服务为n个微服务中的微服务;获取通过第一微服务发送第三脉冲信息到达第二微服务所需的第四时间段;在第三时间段和第四时间段相同的情况下,确定第二微服务所在的节点为入环节点。
[0070]
例如,在从源节点(比如图1中n1服务所在的节点)和“相遇”节点(比如图1中n12服务所在的节点)同时发起相同定时间隔的“入环点”脉冲(上述的第三脉冲信息)之后,可以确定两个发起的“入环点”脉冲第一次“相遇”的节点即为存在服务调用死循环的节点(简称入环节点)(可以为图1中n3服务所在的节点)。
[0071]
通过上述的方案,根据发送的入环脉冲信息,可以快速准确的确定微服务在调用的过程中的闭环的入环节点。
[0072]
可选地,在本技术实施例提供的微服务的检测方法中,在依据分别通过目标微服务和第一微服务发送的第三脉冲信息,确定入环节点之后,该方法还包括:确定与入环节点相关联的节点;基于与入环节点相关联的节点,对n个微服务在调用过程中的闭环进行处理。
[0073]
例如,可以围绕入环节点对应的入环服务(比如图1中的n3)重新进行代码审查和设计上的回顾,配合源节点id、源事件编号等等对应的日志分析,可分析是在何种业务场景和基础数据背景下,触发了该服务调用闭环。
[0074]
通过上述的方案,可以快速准确的将微服务在调用的过程中的闭环打开,从而可以避免出现死循环的情况。
[0075]
因此,为解决相关技术中检测微服务在调用的过程中是否存在闭环情况的准确性较低,导致容易出现死循环的情况的问题,从而可以实现对于微服务模式下,真实的调用闭环的精确检测。在本实施例中,提供了一种可选的微服务的检测方法,且该方法包括如下步骤:
[0076]
步骤100:可以在微服务节点上的网络协议栈增加特定的暂存区,并部署脉冲服务。做覆盖性测试的每一次微服务之间的调用发生的时候,在每一个微服务所处的节点处,记录本次服务调用的父子事件编号、当前服务id、下一个服务id,以“服务-事件信息表”(表
plane(服务网格控制面板)中记录该节点为“相遇”节点,并在控制面板记录源节点id和源事件编号。另外,图4是本技术实施例中服务网格控制面板记录“相遇”节点的示意图,且在控制面板记录源节点id和源事件编号时可以按照图4的方式进行记录。
[0089]
举例说明:以图1为例,n1-n2-n3-n4-n5-n10-n11-n12-n9-n3这是其中一条通过步骤200至步骤204查找出闭环信息的脉冲发送路径。定时间隔以0.5s(短脉冲)、1s(长脉冲)为例,中隔号代表每1s,7s之后短脉冲是n1n2n3-n3n4n5-n5n10n11-n11n12n9-n9n3n4-n4n5n10-n10n11n12,长脉冲是n1n2-n2n3-n3n4-n4n5-n5n10-n10n11-n11n12,长短脉冲在n12处相遇。n12所在节点即为“相遇”节点。
[0090]
步骤300:步骤200至步骤204的迭代查找结束后,可以根据控制面板的记录,从源节点和“相遇”节点同时发起相同定时间隔的“入环点”脉冲。“入环点”脉冲在源节点根据源事件编号查找服务-事件信息表进行精准发送;“入环点”脉冲在“相遇节点”根据源节点id和源事件编号查找脉冲信息表定位到对应记录后,根据该记录的父事件编号字段查找服务-事件信息表进行精准发送。两个发起的“入环点”脉冲第一次“相遇”的节点即为存在服务调用死循环的节点(简称入环节点)。
[0091]
举例说明:从源节点的服务n1和“相遇”节点的服务n12同时发送“入环点脉冲”,那么两轮过后,两个脉冲相遇在n3。入环点脉冲跟步骤200的脉冲主要的不同在于定时间隔是一致的。
[0092]
步骤301:接步骤300,围绕入环节点对应的入环服务(比如图1中的n3)重新进行代码审查和设计上的回顾,配合源节点id、源事件编号等等对应的日志分析,可分析是在何种业务场景和基础数据背景下,触发了该服务调用闭环。
[0093]
步骤400:可以进一步的证明正确性过程:
[0094]
假设存在服务调用闭环的调用链条源的源服务到入环服务的距离是d(距离以长脉冲1s调用链的增长的服务数量计算),从入环服务到到相遇服务的距离是s1,从相遇服务到入环服务的距离是s2。那当长短脉冲首次相遇时,长脉冲所走距离是d+s1,短脉冲所走距离是d+s1+n(s1+s2),其中n为短脉冲的绕环的圈数。由于长短脉冲的调用链的服务数量增长速度相差1倍,所以2(d+s1)=d+s1+n(s1+s2),即d=(n-1)(s1+s2)+s2,也就是说,从源服务到入环服务的距离,等于从相遇服务绕环n-1圈再回到入环服务的距离。这样步骤300至步骤301的分别从源节点和相遇节点,根据事件编号发起对应服务的“入环点”脉冲,具有相同的定时间隔,则最终相遇的节点,就是入环节点,对应的服务,即为入环服务。
[0095]
补充说明:源服务和相遇服务均为源节点和相遇节点中的服务,可通过服务id在服务网格控制面板中确定其位置(所属节点)和名称。
[0096]
另外,在不做特殊说明的其概况下,本实施例中的“服务”即为“微服务”。
[0097]
而且,本实施例具有如下有益效果:
[0098]
(1)通过覆盖性测试,对真实的服务调用链路,包括实际的功能分支调用(跟着事件编号走)进行了记录,并通过长短脉冲等技术手段对链路进行脉冲碰撞,以排查是否有服务调用闭环。
[0099]
(2)进一步的,通过入环点脉冲确定入环服务,即该服务出现了两次以上相同源事件编号的调用。围绕该入环服务进行审查和回顾,以提高确认服务调用闭环的效率。
[0100]
综上,本技术实施例提供的微服务的检测方法,通过确定待检测的n个微服务,其
中,n为大于1的正整数;通过n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,n个微服务中的微服务发送第二脉冲信息的时间间隔小于发送第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数;依据s个第一脉冲信息和t个第二脉冲信息,确定对n个微服务的检测结果,其中,检测结果用于表示n个微服务在调用的过程中是否存在闭环的情况,解决了相关技术中检测微服务在调用的过程中是否存在闭环情况的准确性较低,导致容易出现死循环的情况的问题。通过确定待检测的n个微服务,并通过n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,再依据s个第一脉冲信息和t个第二脉冲信息,确定对n个微服务在调用的过程中是否存在闭环情况的检测结果,从而提升了检测微服务在调用的过程中是否存在闭环情况的准确性,进而达到了避免出现死循环的情况的效果。
[0101]
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0102]
本技术实施例还提供了一种微服务的检测装置,需要说明的是,本技术实施例的微服务的检测装置可以用于执行本技术实施例所提供的用于微服务的检测方法。以下对本技术实施例提供的微服务的检测装置进行介绍。
[0103]
图5是根据本技术实施例的微服务的检测装置的示意图。如图5所示,该装置包括:第一确定单元501、第二确定单元502和第三确定单元503。
[0104]
具体地,第一确定单元501,用于确定待检测的n个微服务,其中,n为大于1的正整数;
[0105]
第二确定单元502,用于通过n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,n个微服务中的微服务发送第二脉冲信息的时间间隔小于发送第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数;
[0106]
第三确定单元503,用于依据s个第一脉冲信息和t个第二脉冲信息,确定对n个微服务的检测结果,其中,检测结果用于表示n个微服务在调用的过程中是否存在闭环的情况。
[0107]
综上,本技术实施例提供的微服务的检测装置,通过第一确定单元501确定待检测的n个微服务,其中,n为大于1的正整数;第二确定单元502通过n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,n个微服务中的微服务发送第二脉冲信息的时间间隔小于发送第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数;第三确定单元503依据s个第一脉冲信息和t个第二脉冲信息,确定对n个微服务的检测结果,其中,检测结果用于表示n个微服务在调用的过程中是否存在闭环的情况,解决了相关技术中检测微服务在调用的过程中是否存在闭环情况的准确性较低,导致容易出现死循环的情况的问题。通过确定待检测的n个微服务,并通过n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,再依据s个第一脉冲信息和t个第二脉冲信息,确定对n个微服务在调用的过程中是否存在闭环情况的检测结果,从而提升了检测微服务在调用的过程中是否存在闭环情况的准确性,进而达到了避免出现死循环的情况的效果。
[0108]
可选地,在本技术实施例提供的微服务的检测装置中,第三确定单元包括:第一获
取子单元,用于获取s个第一脉冲信息中的第一脉冲信息到达目标微服务所需的第一时间段,其中,目标微服务为n个微服务中的微服务;第二获取子单元,用于获取t个第二脉冲信息中的第二脉冲信息到达目标微服务所需的第二时间段;第一确定子单元,用于依据第一时间段和第二时间段,确定对n个微服务的检测结果。
[0109]
可选地,在本技术实施例提供的微服务的检测装置中,第一确定子单元包括:第一判断模块,用于判断第一时间段和第二时间段是否相同;第一获取模块,用于若第一时间段和第二时间段相同,则获取第一源节点的id信息和第二源节点的id信息,其中,第一源节点为s个第一脉冲信息中的第一脉冲信息对应的源节点,第二源节点为t个第二脉冲信息中的第二脉冲信息对应的源节点;第一确定模块,用于依据第一源节点的id信息和第二源节点的id信息,确定对n个微服务的检测结果;第二确定模块,用于若第一时间段和第二时间段不同,则表示n个微服务在调用的过程中不存在闭环的情况。
[0110]
可选地,在本技术实施例提供的微服务的检测装置中,第一确定模块包括:第一判断子模块,用于判断第一源节点的id信息和第二源节点的id信息是否相同;第一确定子模块,用于若第一源节点的id信息和第二源节点的id信息相同,则表示n个微服务在调用的过程中存在闭环的情况;第二确定子模块,用于若第一源节点的id信息和第二源节点的id信息不同,则表示n个微服务在调用的过程中不存在闭环的情况。
[0111]
可选地,在本技术实施例提供的微服务的检测装置中,该装置还包括:第四确定单元,用于在若第一源节点的id信息和第二源节点的id信息相同,则表示n个微服务在调用的过程中存在闭环的情况之后,从n个微服务中确定第一微服务,其中,第一微服务所在的节点为第一源节点;第一发送单元,用于在当前时间点达到预设时刻时,分别通过目标微服务和第一微服务发送第三脉冲信息;第五确定单元,用于依据分别通过目标微服务和第一微服务发送的第三脉冲信息,确定入环节点,其中,入环节点为n个微服务在调用过程中的闭环的起始节点。
[0112]
可选地,在本技术实施例提供的微服务的检测装置中,第五确定单元包括:第三获取子单元,用于获取通过目标微服务发送第三脉冲信息到达第二微服务所需的第三时间段,其中,第二微服务为n个微服务中的微服务;第四获取子单元,用于获取通过第一微服务发送第三脉冲信息到达第二微服务所需的第四时间段;第二确定子单元,用于在第三时间段和第四时间段相同的情况下,确定第二微服务所在的节点为入环节点。
[0113]
可选地,在本技术实施例提供的微服务的检测装置中,该装置还包括:第六确定单元,用于在依据分别通过目标微服务和第一微服务发送的第三脉冲信息,确定入环节点之后,确定与入环节点相关联的节点;第一处理单元,用于基于与入环节点相关联的节点,对n个微服务在调用过程中的闭环进行处理。
[0114]
可选地,在本技术实施例提供的微服务的检测装置中,第二确定单元包括:第五获取子单元,用于获取目标信息表,其中,目标信息表中至少包括:n个微服务中每个微服务的id信息、每个微服务的下一个微服务的id信息;第三确定子单元,用于依据目标信息表,从n个微服务中确定每个微服务的下一个微服务;第四确定子单元,用于基于每个微服务的下一个微服务,确定y个目标节点,其中,y个目标节点为每个微服务的下一个微服务所在的节点,y为大于1的正整数;第五确定子单元,用于通过n个微服务中的每个微服务向每个目标节点发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息。
[0115]
微服务的检测装置包括处理器和存储器,上述第一确定单元501、第二确定单元502和第三确定单元503等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0116]
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来避免出现死循环的情况。
[0117]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
[0118]
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现所述微服务的检测方法。
[0119]
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述微服务的检测方法。
[0120]
如图6所示,本发明实施例提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:确定待检测的n个微服务,其中,n为大于1的正整数;通过所述n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,所述n个微服务中的微服务发送所述第二脉冲信息的时间间隔小于发送所述第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数;依据所述s个第一脉冲信息和所述t个第二脉冲信息,确定对所述n个微服务的检测结果,其中,所述检测结果用于表示所述n个微服务在调用的过程中是否存在闭环的情况。
[0121]
处理器执行程序时还实现以下步骤:依据所述s个第一脉冲信息和所述t个第二脉冲信息,确定对所述n个微服务的检测结果包括:获取所述s个第一脉冲信息中的第一脉冲信息到达目标微服务所需的第一时间段,其中,所述目标微服务为所述n个微服务中的微服务;获取所述t个第二脉冲信息中的第二脉冲信息到达所述目标微服务所需的第二时间段;依据所述第一时间段和所述第二时间段,确定对所述n个微服务的检测结果。
[0122]
处理器执行程序时还实现以下步骤:依据所述第一时间段和所述第二时间段,确定对所述n个微服务的检测结果包括:判断所述第一时间段和所述第二时间段是否相同;若所述第一时间段和所述第二时间段相同,则获取第一源节点的id信息和第二源节点的id信息,其中,所述第一源节点为所述s个第一脉冲信息中的第一脉冲信息对应的源节点,所述第二源节点为所述t个第二脉冲信息中的第二脉冲信息对应的源节点;依据所述第一源节点的id信息和所述第二源节点的id信息,确定对所述n个微服务的检测结果;若所述第一时间段和所述第二时间段不同,则表示所述n个微服务在调用的过程中不存在闭环的情况。
[0123]
处理器执行程序时还实现以下步骤:依据所述第一源节点的id信息和所述第二源节点的id信息,确定对所述n个微服务的检测结果包括:判断所述第一源节点的id信息和所述第二源节点的id信息是否相同;若所述第一源节点的id信息和所述第二源节点的id信息相同,则表示所述n个微服务在调用的过程中存在闭环的情况;若所述第一源节点的id信息和所述第二源节点的id信息不同,则表示所述n个微服务在调用的过程中不存在闭环的情况。
[0124]
处理器执行程序时还实现以下步骤:在若所述第一源节点的id信息和所述第二源
节点的id信息相同,则表示所述n个微服务在调用的过程中存在闭环的情况之后,所述方法还包括:从所述n个微服务中确定第一微服务,其中,所述第一微服务所在的节点为所述第一源节点;在当前时间点达到预设时刻时,分别通过所述目标微服务和所述第一微服务发送第三脉冲信息;依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点,其中,所述入环节点为所述n个微服务在调用过程中的闭环的起始节点。
[0125]
处理器执行程序时还实现以下步骤:依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点包括:获取通过所述目标微服务发送所述第三脉冲信息到达第二微服务所需的第三时间段,其中,所述第二微服务为所述n个微服务中的微服务;获取通过所述第一微服务发送所述第三脉冲信息到达所述第二微服务所需的第四时间段;在所述第三时间段和所述第四时间段相同的情况下,确定所述第二微服务所在的节点为所述入环节点。
[0126]
处理器执行程序时还实现以下步骤:在依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点之后,所述方法还包括:确定与所述入环节点相关联的节点;基于与所述入环节点相关联的节点,对所述n个微服务在调用过程中的闭环进行处理。
[0127]
处理器执行程序时还实现以下步骤:通过所述n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息包括:获取目标信息表,其中,所述目标信息表中至少包括:所述n个微服务中每个微服务的id信息、每个微服务的下一个微服务的id信息;依据所述目标信息表,从所述n个微服务中确定每个微服务的下一个微服务;基于每个微服务的下一个微服务,确定y个目标节点,其中,所述y个目标节点为每个微服务的下一个微服务所在的节点,y为大于1的正整数;通过所述n个微服务中的每个微服务向每个目标节点发送不同类型的脉冲信息,得到所述s个第一脉冲信息和所述t个第二脉冲信息。
[0128]
本文中的设备可以是服务器、pc、pad、手机等。
[0129]
本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:确定待检测的n个微服务,其中,n为大于1的正整数;通过所述n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,所述n个微服务中的微服务发送所述第二脉冲信息的时间间隔小于发送所述第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数;依据所述s个第一脉冲信息和所述t个第二脉冲信息,确定对所述n个微服务的检测结果,其中,所述检测结果用于表示所述n个微服务在调用的过程中是否存在闭环的情况。
[0130]
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据所述s个第一脉冲信息和所述t个第二脉冲信息,确定对所述n个微服务的检测结果包括:获取所述s个第一脉冲信息中的第一脉冲信息到达目标微服务所需的第一时间段,其中,所述目标微服务为所述n个微服务中的微服务;获取所述t个第二脉冲信息中的第二脉冲信息到达所述目标微服务所需的第二时间段;依据所述第一时间段和所述第二时间段,确定对所述n个微服务的检测结果。
[0131]
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据所述第一时间段和所述第二时间段,确定对所述n个微服务的检测结果包括:判断所述第一时
间段和所述第二时间段是否相同;若所述第一时间段和所述第二时间段相同,则获取第一源节点的id信息和第二源节点的id信息,其中,所述第一源节点为所述s个第一脉冲信息中的第一脉冲信息对应的源节点,所述第二源节点为所述t个第二脉冲信息中的第二脉冲信息对应的源节点;依据所述第一源节点的id信息和所述第二源节点的id信息,确定对所述n个微服务的检测结果;若所述第一时间段和所述第二时间段不同,则表示所述n个微服务在调用的过程中不存在闭环的情况。
[0132]
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据所述第一源节点的id信息和所述第二源节点的id信息,确定对所述n个微服务的检测结果包括:判断所述第一源节点的id信息和所述第二源节点的id信息是否相同;若所述第一源节点的id信息和所述第二源节点的id信息相同,则表示所述n个微服务在调用的过程中存在闭环的情况;若所述第一源节点的id信息和所述第二源节点的id信息不同,则表示所述n个微服务在调用的过程中不存在闭环的情况。
[0133]
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在若所述第一源节点的id信息和所述第二源节点的id信息相同,则表示所述n个微服务在调用的过程中存在闭环的情况之后,所述方法还包括:从所述n个微服务中确定第一微服务,其中,所述第一微服务所在的节点为所述第一源节点;在当前时间点达到预设时刻时,分别通过所述目标微服务和所述第一微服务发送第三脉冲信息;依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点,其中,所述入环节点为所述n个微服务在调用过程中的闭环的起始节点。
[0134]
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点包括:获取通过所述目标微服务发送所述第三脉冲信息到达第二微服务所需的第三时间段,其中,所述第二微服务为所述n个微服务中的微服务;获取通过所述第一微服务发送所述第三脉冲信息到达所述第二微服务所需的第四时间段;在所述第三时间段和所述第四时间段相同的情况下,确定所述第二微服务所在的节点为所述入环节点。
[0135]
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点之后,所述方法还包括:确定与所述入环节点相关联的节点;基于与所述入环节点相关联的节点,对所述n个微服务在调用过程中的闭环进行处理。
[0136]
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:通过所述n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息包括:获取目标信息表,其中,所述目标信息表中至少包括:所述n个微服务中每个微服务的id信息、每个微服务的下一个微服务的id信息;依据所述目标信息表,从所述n个微服务中确定每个微服务的下一个微服务;基于每个微服务的下一个微服务,确定y个目标节点,其中,所述y个目标节点为每个微服务的下一个微服务所在的节点,y为大于1的正整数;通过所述n个微服务中的每个微服务向每个目标节点发送不同类型的脉冲信息,得到所述s个第一脉冲信息和所述t个第二脉冲信息。
[0137]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0138]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0139]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0140]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0141]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0142]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
[0143]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0144]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0145]
本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形
式。
[0146]
以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种微服务的检测方法,其特征在于,包括:确定待检测的n个微服务,其中,n为大于1的正整数;通过所述n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,所述n个微服务中的微服务发送所述第二脉冲信息的时间间隔小于发送所述第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数;依据所述s个第一脉冲信息和所述t个第二脉冲信息,确定对所述n个微服务的检测结果,其中,所述检测结果用于表示所述n个微服务在调用的过程中是否存在闭环的情况。2.根据权利要求1所述的方法,其特征在于,依据所述s个第一脉冲信息和所述t个第二脉冲信息,确定对所述n个微服务的检测结果包括:获取所述s个第一脉冲信息中的第一脉冲信息到达目标微服务所需的第一时间段,其中,所述目标微服务为所述n个微服务中的微服务;获取所述t个第二脉冲信息中的第二脉冲信息到达所述目标微服务所需的第二时间段;依据所述第一时间段和所述第二时间段,确定对所述n个微服务的检测结果。3.根据权利要求2所述的方法,其特征在于,依据所述第一时间段和所述第二时间段,确定对所述n个微服务的检测结果包括:判断所述第一时间段和所述第二时间段是否相同;若所述第一时间段和所述第二时间段相同,则获取第一源节点的id信息和第二源节点的id信息,其中,所述第一源节点为所述s个第一脉冲信息中的第一脉冲信息对应的源节点,所述第二源节点为所述t个第二脉冲信息中的第二脉冲信息对应的源节点;依据所述第一源节点的id信息和所述第二源节点的id信息,确定对所述n个微服务的检测结果;若所述第一时间段和所述第二时间段不同,则表示所述n个微服务在调用的过程中不存在闭环的情况。4.根据权利要求3所述的方法,其特征在于,依据所述第一源节点的id信息和所述第二源节点的id信息,确定对所述n个微服务的检测结果包括:判断所述第一源节点的id信息和所述第二源节点的id信息是否相同;若所述第一源节点的id信息和所述第二源节点的id信息相同,则表示所述n个微服务在调用的过程中存在闭环的情况;若所述第一源节点的id信息和所述第二源节点的id信息不同,则表示所述n个微服务在调用的过程中不存在闭环的情况。5.根据权利要求4所述的方法,其特征在于,在若所述第一源节点的id信息和所述第二源节点的id信息相同,则表示所述n个微服务在调用的过程中存在闭环的情况之后,所述方法还包括:从所述n个微服务中确定第一微服务,其中,所述第一微服务所在的节点为所述第一源节点;在当前时间点达到预设时刻时,分别通过所述目标微服务和所述第一微服务发送第三脉冲信息;依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环
节点,其中,所述入环节点为所述n个微服务在调用过程中的闭环的起始节点。6.根据权利要求5所述的方法,其特征在于,依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点包括:获取通过所述目标微服务发送所述第三脉冲信息到达第二微服务所需的第三时间段,其中,所述第二微服务为所述n个微服务中的微服务;获取通过所述第一微服务发送所述第三脉冲信息到达所述第二微服务所需的第四时间段;在所述第三时间段和所述第四时间段相同的情况下,确定所述第二微服务所在的节点为所述入环节点。7.根据权利要求5所述的方法,其特征在于,在依据分别通过所述目标微服务和所述第一微服务发送的所述第三脉冲信息,确定入环节点之后,所述方法还包括:确定与所述入环节点相关联的节点;基于与所述入环节点相关联的节点,对所述n个微服务在调用过程中的闭环进行处理。8.根据权利要求1所述的方法,其特征在于,通过所述n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息包括:获取目标信息表,其中,所述目标信息表中至少包括:所述n个微服务中每个微服务的id信息、每个微服务的下一个微服务的id信息;依据所述目标信息表,从所述n个微服务中确定每个微服务的下一个微服务;基于每个微服务的下一个微服务,确定y个目标节点,其中,所述y个目标节点为每个微服务的下一个微服务所在的节点,y为大于1的正整数;通过所述n个微服务中的每个微服务向每个目标节点发送不同类型的脉冲信息,得到所述s个第一脉冲信息和所述t个第二脉冲信息。9.一种微服务的检测装置,其特征在于,包括:第一确定单元,用于确定待检测的n个微服务,其中,n为大于1的正整数;第二确定单元,用于通过所述n个微服务中的每个微服务发送不同类型的脉冲信息,得到s个第一脉冲信息和t个第二脉冲信息,其中,所述n个微服务中的微服务发送所述第二脉冲信息的时间间隔小于发送所述第一脉冲信息的时间间隔,s小于t,s和t均为大于1的正整数;第三确定单元,用于依据所述s个第一脉冲信息和所述t个第二脉冲信息,确定对所述n个微服务的检测结果,其中,所述检测结果用于表示所述n个微服务在调用的过程中是否存在闭环的情况。10.一种计算机可读存储介质,其特征在于,所述存储介质存储程序,其中,所述程序执行权利要求1至8中任意一项所述的微服务的检测方法。11.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任意一项所述的微服务的检测方法。
技术总结
本申请公开了一种微服务的检测方法及装置、存储介质和电子设备,涉及金融科技领域。该方法包括:确定待检测的N个微服务;通过N个微服务中的每个微服务发送不同类型的脉冲信息,得到S个第一脉冲信息和T个第二脉冲信息,其中,N个微服务中的微服务发送第二脉冲信息的时间间隔小于发送第一脉冲信息的时间间隔,S小于T,S和T均为大于1的正整数;依据S个第一脉冲信息和T个第二脉冲信息,确定对N个微服务的检测结果,其中,检测结果用于表示N个微服务在调用的过程中是否存在闭环的情况。通过本申请,解决了相关技术中检测微服务在调用的过程中是否存在闭环情况的准确性较低,导致容易出现死循环的情况的问题。现死循环的情况的问题。现死循环的情况的问题。
技术研发人员:胡文涛 罗剑平 陈鹏翼 张先刚
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.06.25
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
