技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种服务的依赖关系分析方法及装置与流程  >  正文

一种服务的依赖关系分析方法及装置与流程

  • 国知局
  • 2024-11-19 09:39:48

本技术实施例涉及云计算,尤其涉及一种服务的依赖关系分析方法及装置。

背景技术:

1、在云计算技术领域,软件系统往往由多个服务构成,这些服务之间通常存在互相调用的关系,服务之间的调用与被调用的关系可以称为依赖关系或调用关系。分析软件系统中服务之间的依赖关系有助于进行系统设计、权限控制、故障分析、优化资源配置以及系统性能调优等。

2、目前,通过对服务的代码文件进行分析以确定服务之间的依赖关系,例如,抓取服务的代码文件之后,根据代码文件中的服务的初始化信息(初始化信息中包括服务运行的依赖包和服务初始化关联的服务等)确定服务的依赖关系。

3、上述方法中,分析代码文件的工作量较大,在大规模的软件系统中,这种通过代码文件确定服务之间的依赖关系的方法的效率较低。

技术实现思路

1、本技术实施例提供一种服务的依赖关系分析方法及装置,能够提升分析服务的依赖关系的效率。

2、为达到上述目的,本技术实施例采用如下技术方案:

3、第一方面,本技术实施例提供一种服务的依赖关系分析方法,该方法应用于云管理平台,云管理平台用于管理基础设施,基础设施上运行有用户部署第一服务和第二服务,第一服务运行在基础设施的第一服务节点上,第二服务运行在基础设施的第二服务节点上,该方法包括:获取用户输入的待分析服务信息,待分析服务信息用于确定第一服务和第二服务,其中,第一服务和第二服务在运行时产生业务请求;并获取业务请求的请求日志,请求日志是第一服务和第二服务在处理业务请求的过程中生成的;以及根据请求日志确定决策信息,决策信息包括业务请求的源信息和/或目的信息;再根据决策信息,确定第一服务和第二服务之间的依赖关系。

4、本技术实施例提供的服务的依赖关系分析方法基于已有的业务请求的请求日志确定出服务之间的依赖关系,与现有技术相比,该方法简单、实操性强,无需进行大量的故障模拟,也无需改造软件系统,也无需分析大量代码文件,能够提升分析服务的依赖关系的效率。

5、进一步的,本技术实施例提供的服务的依赖关系分析方法还具有准确率高、成本低、可动态地、自适应地分析依赖关系的优点。

6、一种可能的实现方式中,上述业务请求中的源信息包括第一服务节点的标识信息,业务请求中的目的信息包括第二服务的服务节点的标识信息。基于此,上述根据请求日志确定决策信息,包括:按照请求日志的日志格式,从请求日志中提取第一服务节点的标识信息和/或第二服务节点的标识信息,得到决策信息。

7、日志格式是日志中各种信息的组成格式,根据日志的格式可以从日志中快速地提取所需的信息,例如根据日志的格式可以获知日志中哪些字段对应哪些信息,如此,当需要提取某种信息时,根据日志格式提取指定字段的信息即可获取到所需信息。

8、可选地,上述日志格式是用户在云管理平台的操作界面输入的,云管理平台获取到用户输入的日志格式,根据日志格式从日志中提取所需的信息;或者,上述日志格式也可以是预先定义好的,本技术实施例对此不做限定。

9、一种可能的实现方式中,上述请求日志包括下述至少一种:系统日志、业务日志、网关日志或中间件日志;其中,中间件日志由第二服务节点生成,系统日志和业务日志由第一服务节点生成,网关日志由第一服务节点与第二服务节点之间的网关设备生成。

10、一种可能的实现方式中,上述获取业务请求的请求日志,包括:根据待分析服务信息,获取第一节点信息和第二节点信息,所述第一节点信息用于指示所述第一服务,所述第二节点信息用于指示所述第二服务;并根据第一节点信息和第二节点信息,从全量请求日志中获取第一服务和第二服务处理业务请求的过程中生成的请求日志;全量请求日志是基础设施上部署的多个服务在互相调用的过程中生成的请求日志。从全量日志中获取出第一服务节点和第二服务节点在处理业务请求的过程中生成的请求日志,过滤掉一些无关的请求日志,有助于提高依赖关系分析的准确性。

11、一种可能的实现方式中,第一节点信息包括第一服务的名称和第一服务节点的标识信息,第二节点信息包括第二服务的名称和第二服务节点的标识信息。基于此,上述根据待分析服务信息,获取第一节点信息和第二节点信息,包括:根据待分析服务信息,获取第一服务节点的信息,并按照节点信息格式,从第一服务节点的信息中提取第一服务的名称和第一服务节点的标识信息,得到第一节点信息;并根据待分析服务信息,获取第二服务节点的信息,并按照节点信息格式,从第二服务节点的信息中提取第二服务的名称和第二服务节点的标识信息,得到第二节点信息。

12、节点信息格式是节点的各种信息的组成格式,根据节点信息格式可以从节点的信息中快速地提取所需的信息,例如根据节点信息格式可以获知服务节点的信息中哪些字段对应哪些信息,如此,当需要提取某种信息时,根据节点信息格式提取指定字段的信息即可获取到所需信息。可选地,不同软件系统中的服务节点的节点信息格式可能不同,同一软件系统中的不同服务节点的节点信息格式可能也不同。

13、可选地,上述节点信息格式是用户在云管理平台的操作界面输入的,云管理平台获取到用户输入的节点信息格式,根据节点信息格式从服务节点的信息中提取所需的信息;或者,上述节点信息格式也可以是预先定义好的,本技术实施例对此不做限定。

14、一种可能的实现方式中,上述根据决策信息,确定第一服务和第二服务之间的依赖关系,包括:基于第一服务节点的标识信息和/或第二服务节点的标识信息,计算第一服务与第二服务之间的依赖关系的决策值;若决策值大于决策阈值,则确定第一服务与第二服务之间存在依赖关系,且第一服务依赖于第二服务;否则,确定第一服务与第二服务之间不存在依赖关系。

15、应理解,上述决策信息的数量为n,依赖关系的决策值的计算公式:

16、

17、其中,score(var)表示依赖关系的决策值,αi是第i条决策信息的权重值(可以称为调和系数)。根据上述计算公式可知,第一服务和第二服务之间的依赖关系的决策值是所有决策信息的分值的加权和。

18、一种可能的实现方式中,上述业务请求中的源信息还包括第一服务的第一api的信息,业务请求中的目的信息包括第二服务的第二api的信息。基于此,上述根据请求日志确定决策信息,包括:按照请求日志的日志格式,从请求日志中提取第一服务节点的标识信息和/或第二服务节点的标识信息,以及提取第一api的信息和/或第二api的信息,得到决策信息。

19、一种可能的实现方式中,上述根据决策信息,确定第一服务和第二服务之间的依赖关系,包括:基于第一服务节点的标识信息和/或第二服务节点的标识信息,以及第一api的信息和/或第二api的信息,计算第一服务与第二服务之间的api的依赖关系的决策值;若决策值大于决策阈值,则确定第一服务与第二服务之间存在api的依赖关系;否则,确定第一服务与第二服务之间不存在api的依赖关系。其中,第一服务与第二服务之间存在api的依赖关系包括下述至少一项:第一服务的第一api依赖于第二服务;第一服务依赖于第二服务的第二api;或第一服务的第一api依赖于第二服务的第二api。可见,本技术实施例提供的服务的来关系分析方法可以从更细的粒度分析服务的依赖关系,提升服务的依赖关系分析的准确性。

20、一种可能的实现方式中,本技术实施例提供的服务的依赖关系分析方法还包括:根据第一服务与第二服务之间的依赖关系,构建依赖关系拓扑图。依赖关系拓扑图可以直观地反映服务之间的依赖关系(包括服务级的依赖关系和api级的依赖关系)。

21、第二方面,本技术实施例提供一种服务的依赖关系分析方法,应用于云管理平台,该云管理平台用于管理基础设施,基础设施上运行有用户部署的多个服务,多个服务在运行时产生业务请求,多个服务包括第一服务和第二服务,其中,第一服务运行在基础设施的第一服务节点上,第二服务运行在基础设施的第二服务节点上,该方法包括:获取用户输入的待分析服务信息,该待分析服务信息用于确定第一服务和第二服务;并获取多个服务发送的业务请求的请求日志,该请求日志是多个服务处理业务请求的过程中生成的;以及根据请求日志确定决策信息,决策信息包括业务请求的源信息和/或目的信息;再根据决策信息,确定第一服务和第二服务之间的依赖关系。

22、本技术实施例提供的服务的依赖关系分析方法基于已有的业务请求的请求日志确定出服务之间的依赖关系,与现有技术相比,该方法简单、实操性强,无需进行大量的故障模拟,也无需改造软件系统,也无需分析大量代码文件,能够提升分析服务的依赖关系的效率。

23、进一步的,本技术实施例提供的服务的依赖关系分析方法还具有准确率高、成本低、可动态地、自适应地分析依赖关系的优点。

24、一种可能的实现方式中,上述业务请求的源信息包括运行多个服务的多个服务节点中的源服务节点的标识信息,业务请求的目的信息包括多个服务节点中的目的服务节点的标识信息;业务请求是源服务节点运行的服务向目的服务节点上运行的服务发送的。上述根据请求日志确定决策信息,包括:按照请求日志的日志格式,从请求日志中提取源服务节点的标识信息和/或目的服务节点的标识信息,得到决策信息。

25、日志格式是日志中各种信息的组成格式,根据日志的格式可以从日志中快速地提取所需的信息,例如根据日志的格式可以获知日志中哪些字段对应哪些信息,如此,当需要提取某种信息时,根据日志格式提取指定字段的信息即可获取到所需信息。

26、可选地,上述日志格式是用户在云管理平台的操作界面输入的,云管理平台获取到用户输入的日志格式,根据日志格式从日志中提取所需的信息;或者,上述日志格式也可以是预先定义好的,本技术实施例对此不做限定。

27、一种可能的实现方式中,本技术实施例提供的服务的依赖关系分析方法还包括:根据待分析服务信息,获取第一节点信息和第二节点信息,第一节点信息用于指示第一服务,第二节点信息用于指示第二服务。上述根据决策信息,确定第一服务和第二服务之间的依赖关系,包括:根据第一节点信息和第二节点信息,从决策信息中确定目标决策信息,该目标决策信息包括第一服务节点的标识信息和/或第二服务节点的标识信息;并且根据目标决策信息,确定第一服务和第二服务之间的依赖关系。从多条决策信息中筛选出源服务节点为第一服务节点,目的服务节点为第二服务节点的决策信息作为目标决策信息,过滤掉一些无关的决策信息,有助于提高依赖关系分析的准确性。

28、一种可能的实现方式中,第一节点信息包括第一服务的名称和第一服务节点的标识信息,第二节点信息包括第二服务的名称和第二服务节点的标识信息。上述根据待分析服务信息,获取第一节点信息和第二节点信息,包括:根据待分析服务信息,获取第一服务节点的信息,并按照节点信息格式,从第一服务节点的信息中提取第一服务的名称和第一服务节点的标识信息,得到第一节点信息;并且根据待分析服务信息,获取第二服务节点的信息,并按照节点信息格式,从第二服务节点的信息中提取第二服务的名称和第二服务节点的标识信息,得到第二节点信息。

29、节点信息格式是节点的各种信息的组成格式,根据节点信息格式可以从节点的信息中快速地提取所需的信息,例如根据节点信息格式可以获知服务节点的信息中哪些字段对应哪些信息,如此,当需要提取某种信息时,根据节点信息格式提取指定字段的信息即可获取到所需信息。可选地,不同软件系统中的服务节点的节点信息格式可能不同,同一软件系统中的不同服务节点的节点信息格式可能也不同。

30、可选地,上述节点信息格式是用户在云管理平台的操作界面输入的,云管理平台获取到用户输入的节点信息格式,根据节点信息格式从服务节点的信息中提取所需的信息;或者,上述节点信息格式也可以是预先定义好的,本技术实施例对此不做限定。

31、一种可能的实现方式中,上述根据目标决策信息,确定第一服务和第二服务之间的依赖关系,包括:基于目标决策信息中的第一服务节点的标识信息和/或第二服务节点的标识信息,计算第一服务与第二服务之间的依赖关系的决策值;若决策值大于决策阈值,则确定第一服务与第二服务之间存在依赖关系,且第一服务依赖于第二服务;否则,确定第一服务与第二服务之间不存在依赖关系。

32、上述的多条决策信息的数量为n,每一条决策信息设置有分值,例如对于第i条决策信息,若该决策信息是目标决策信息时,设置该决策信息对应的分值si置为1,若该决策信息不属于目标决策信息,设置该决策信息对应的分值si为0。

33、一种可能的实现方式中,依赖关系的决策值的计算公式:

34、

35、其中,score(var)表示依赖关系的决策值,n是统计的整个软件系统的决策信息的总数量,si是第i条决策信息的分值,αi是该决策信息的权重值(可以称为调和系数)。

36、根据上述计算公式可知,由于非目标决策信息的分值为0,因此,实际上,第一服务和第二服务之间的依赖关系的决策值是所有目标决策信息的分值的加权和。

37、一种可能的实现方式中,上述业务请求的源信息还包括多个服务中的源服务的api的信息,业务请求的目的信息还包括多个服务中的目的服务的api的信息。上述根据请求日志确定决策信息,包括:按照请求日志的日志格式,从请求日志中提取源服务节点的标识信息和/或目的服务节点的标识信息,以及提取源服务的api的信息和/或目的服务的api的信息,得到决策信息。

38、一种可能的实现方式中,上述根据决策信息,确定第一服务和第二服务之间的依赖关系,包括:根据第一节点信息和第二节点信息,从决策信息中确定目标决策信息,该目标决策信息包括第一服务节点的标识信息和/或第二服务节点的标识信息,以及第一服务的第一api的信息和/或第二服务的第二api的信息;并基于目标决策信息,计算第一服务与第二服务之间的api的依赖关系的决策值;若决策值大于决策阈值,则确定第一服务与第二服务之间存在api的依赖关系;否则,确定第一服务与第二服务之间不存在api的依赖关系。其中,第一服务与第二服务之间存在api的依赖关系包括下述至少一项:第一服务的第一api依赖于第二服务;第一服务依赖于第二服务的第二api;或第一服务的第一api依赖于第二服务的第二api。可见,本技术实施例提供的服务的来关系分析方法可以从更细的粒度分析服务的依赖关系,提升服务的依赖关系分析的准确性。

39、一种可能的实现方式中,本技术实施例提供的服务的依赖关系分析方法还包括:根据第一服务与第二服务之间的依赖关系,构建依赖关系拓扑图。依赖关系拓扑图可以直观地反映服务之间的依赖关系(包括服务级的依赖关系和api级的依赖关系)。

40、第三方面,本技术实施例提供一种云管理平台,该云管理平台用于管理基础设施,基础设施上运行有用户部署第一服务和第二服务,第一服务运行在基础设施的第一服务节点上,第二服务运行在基础设施的第二服务节点上,云管理平台包括第一获取模块、第二获取模块、日志处理模块以及分析模块。其中,第一获取模块用于获取用户输入的待分析服务信息,待分析服务信息用于确定第一服务和第二服务,其中,第一服务和第二服务在运行时产生业务请求;第二获取模块用于获取业务请求的请求日志,请求日志是第一服务和第二服务在处理业务请求的过程中生成的;日志处理模块用于根据请求日志确定决策信息,决策信息包括业务请求的源信息和/或目的信息;分析模块用于根据决策信息,确定第一服务和第二服务之间的依赖关系。

41、一种可能的实现方式中,上述业务请求中的源信息包括第一服务节点的标识信息,业务请求中的目的信息包括所述第二服务的服务节点的标识信息。基于此,日志处理模块具体用于按照请求日志的日志格式,从请求日志中提取第一服务节点的标识信息和/或第二服务节点的标识信息,得到决策信息。

42、一种可能的实现方式中,上述请求日志包括下述至少一种:系统日志、业务日志、网关日志或中间件日志;其中,中间件日志由第二服务节点生成,系统日志和业务日志由第一服务节点生成,网关日志由第一服务节点与第二服务节点之间的网关设备生成。

43、一种可能的实现方式中,云管理平台还包括节点信息处理模块;节点信息处理模块用于根据待分析服务信息,获取第一节点信息和第二节点信息,第一节点信息用于指示第一服务,第二节点信息用于指示第二服务;第二获取模块具体用于根据第一节点信息和第二节点信息,从全量请求日志中获取第一服务和第二服务处理业务请求的过程中生成的请求日志;全量请求日志是基础设施上部署的多个服务在互相调用的过程中生成的请求日志。

44、一种可能的实现方式中,第一节点信息包括第一服务的名称和第一服务节点的标识信息,第二节点信息包括第二服务的名称和第二服务节点的标识信息。基于此,上述节点信息处理模块具体用于根据待分析服务信息,获取第一服务节点的信息,并按照节点信息格式,从第一服务节点的信息中提取第一服务的名称和第一服务节点的标识信息,得到第一节点信息;并且根据待分析服务信息,获取第二服务节点的信息,并按照节点信息格式,从第二服务节点的信息中提取第二服务的名称和第二服务节点的标识信息,得到第二节点信息。

45、一种可能的实现方式中,上述分析模块具体用于基于第一服务节点的标识信息和/或第二服务节点的标识信息,计算第一服务与第二服务之间的依赖关系的决策值;若决策值大于决策阈值,则确定第一服务与第二服务之间存在依赖关系,且第一服务依赖于第二服务;否则,确定第一服务与第二服务之间不存在依赖关系。

46、一种可能的实现方式中,上述业务请求中的源信息还包括第一服务的第一应用可编程接口api的信息,业务请求中的目的信息包括第二服务的第二api的信息。基于此,上述日志处理模块具体用于按照请求日志的日志格式,从请求日志中提取第一服务节点的标识信息和/或第二服务节点的标识信息,以及提取第一api的信息和/或第二api的信息,得到决策信息。

47、一种可能的实现方式中,上述分析模块具体用于基于第一服务节点的标识信息和/或第二服务节点的标识信息,以及第一api的信息和/或第二api的信息,计算第一服务与第二服务之间的api的依赖关系的决策值;若决策值大于决策阈值,则确定第一服务与第二服务之间存在api的依赖关系;否则,确定第一服务与第二服务之间不存在api的依赖关系。其中,第一服务与第二服务之间存在api的依赖关系包括下述至少一项:第一服务的第一api依赖于第二服务;第一服务依赖于第二服务的第二api;或第一服务的第一api依赖于第二服务的第二api。

48、一种可能的实现方式中,云管理平台还包括生成模块;生成模块用于根据第一服务与第二服务之间的依赖关系,构建依赖关系拓扑图。

49、第四方面,本技术实施例提供一种云管理平台,该云管理平台用于管理基础设施,基础设施上运行有用户部署的多个服务,多个服务在运行时产生业务请求,多个服务包括第一服务和第二服务,第一服务运行在基础设施的第一服务节点上,第二服务运行在基础设施的第二服务节点上,云管理平台包括:第一获取模块、第二获取模块、日志处理模块以及分析模块。其中,第一获取模块用于获取用户输入的待分析服务信息,待分析服务信息用于确定第一服务和第二服务;第二获取模块用于获取业务请求的请求日志,请求日志是多个服务处理业务请求的过程中生成的;日志处理模块用于根据请求日志确定决策信息,决策信息包括业务请求中的源信息和/或目的信息;分析模块用于根据决策信息,确定第一服务和第二服务之间的依赖关系。

50、一种可能的实现方式中,上述业务请求中的源信息包括运行多个服务的多个服务节点中的源服务节点的标识信息,业务请求的目的信息包括多个服务节点中的目的服务节点的标识信息;业务请求是源服务节点上运行的服务向目的服务节点上运行的服务发送的。基于此,上述日志处理模块具体用于按照请求日志的日志格式,从请求日志中提取源服务节点的标识信息和/或目的服务节点的标识信息,得到决策信息。

51、一种可能的实现方式中,云管理平台还包括节点信息处理模块;节点信息处理模块用于根据待分析服务信息,获取第一节点信息和第二节点信息,第一节点信息用于指示第一服务,第二节点信息用于指示第二服务。上述分析模块具体用于根据第一节点信息和第二节点信息,从决策信息中确定目标决策信息;目标决策信息包括第一服务节点的标识信息和/或第二服务节点的标识信息;并且根据目标决策信息,确定第一服务和第二服务之间的依赖关系。

52、一种可能的实现方式中,上述第一节点信息包括第一服务的名称和第一服务节点的标识信息,第二节点信息包括第二服务的名称和第二服务节点的标识信息。基于此,节点信息处理模块具体用于根据待分析服务信息,获取第一服务节点的信息,并按照节点信息格式,从第一服务节点的信息中提取第一服务的名称和第一服务节点的标识信息,得到第一节点信息;以及根据待分析服务信息,获取第二服务节点的信息,并按照节点信息格式,从第二服务节点的信息中提取第二服务的名称和第二服务节点的标识信息,得到第二节点信息。

53、一种可能的实现方式中,上述分析模块具体用于基于目标决策信息中的第一服务节点的标识信息和/或第二服务节点的标识信息,计算第一服务与第二服务之间的依赖关系的决策值;若决策值大于决策阈值,则确定第一服务与第二服务之间存在依赖关系,且第一服务依赖于第二服务;否则,确定第一服务与第二服务之间不存在依赖关系。

54、一种可能的实现方式中,上述业务请求的源信息还包括多个服务中的源服务的api的信息,业务请求的目的信息还包括多个服务中的目的服务的api的信息。基于此,上述日志处理模块具体用于按照请求日志的日志格式,从请求日志中提取源服务节点的标识信息和/或目的服务节点的标识信息,以及提取源服务的api的信息和/或目的服务的api的信息,得到决策信息。

55、一种可能的实现方式中,上述分析模块具体用于根据第一节点信息和第二节点信息,从决策信息中确定目标决策信息,该目标决策信息包括第一服务节点的标识信息和/或第二服务节点的标识信息,以及第一服务的第一api的信息和/或第二服务的第二api的信息;并且基于目标决策信息,计算第一服务与第二服务之间的api的依赖关系的决策值;若决策值大于决策阈值,则确定第一服务与第二服务之间存在api的依赖关系;否则,确定第一服务与第二服务之间不存在api的依赖关系。其中,第一服务与第二服务之间存在api的依赖关系包括下述至少一项:第一服务的第一api依赖于第二服务;第一服务依赖于第二服务的第二api;或第一服务的第一api依赖于第二服务的第二api。

56、一种可能的实现方式中,云管理平台还包括生成模块,该生成模块用于根据第一服务与第二服务之间的依赖关系,构建依赖关系拓扑图。

57、一种可能的实现方式中,业务请求的请求日志包括下述至少一种:系统日志、业务日志、网关日志或中间件日志;其中,中间件日志由目的服务节点生成,系统日志和业务日志由源服务节点生成,网关日志由源服务节点与目的服务节点之间的网关设备生成。

58、第五方面,本技术实施例提供一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器。至少一个计算设备的处理器用于执行至少一个计算设备的存储器中存储的指令,以使得计算设备集群执行上述第一方面及其可能的实现方式中任意之一所述的方法或上述第二方面及其可能的实现方式中任意之一所述的方法。

59、第六方面,本技术实施例提供一种包含指令的计算机程序产品,当指令被计算设备集群运行时,使得计算设备集群执行上述第一方面及其可能的实现方式中任意之一所述的方法或上述第二方面及其可能的实现方式中任意之一所述的方法。

60、第七方面,本技术实施例提供一种计算机可读存储介质,包括计算机程序指令,当计算机程序指令由计算设备集群执行时,计算设备集群执行上述第一方面及其可能的实现方式中任意之一所述的方法或上述第二方面及其可能的实现方式中任意之一所述的方法。

61、第八方面,本技术实施例提供一种芯片,包括存储器和处理器。存储器用于存储计算机指令。处理器用于从存储器中调用并运行该计算机指令,以执行第一方面及其可能的实现方式中任意之一所述的方法或上述第二方面及其可能的实现方式中任意之一所述的方法。

62、应当理解的是,本技术实施例的第三方面至第八方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面、第二方面及其对应的可能的实施方式的技术效果,此处不再赘述。

本文地址:https://www.jishuxx.com/zhuanli/20241118/329705.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。