调用链选择方法及装置与流程

文档序号:37020197发布日期:2024-02-09 13:13阅读:27来源:国知局
调用链选择方法及装置与流程

本技术涉及微服务领域,也可以应用于金融领域,具体涉及一种调用链选择方法及装置。


背景技术:

1、当前,金融机构的信息系统通常分为多层,比如渠道方(网银、柜面等等),基础框架服务层、业务处理层、数据加工层等等。一般需求变更对应的修改大多数发生在业务处理层,而各层中间根据不同设计方案,又进一步设有细分层。

2、在业务验证环境下,如果该业务处理层微服务进行了更新,需要快速的从渠道方进行调用验证,并同步基于该业务处理层微服务做对应的混沌测试。

3、也即需要从用户的角度出发,通过服务调用链验证到达业务处理层微服务。与单体验证不同,这种验证是从渠道方开始的综合测试。在混沌测试的背景下,会运行特定范围内的测试脚本,同时逐层逐个微服务地调用,并通过aop方法(面向切面编程)运行当前微服务的所有测试脚本和相应的测试数据。

4、而在由于混沌测试中,最常见的调用链通常是最容易受到问题(如性能、稳定性等),找到所述“最大概率调用链”对于混沌测试非常重要,可以更有效地发现潜在问题。因此需要尽可能模拟实际生产环境中可能发生的调用链。

5、当前最主要的一种调用链选择方法是根据经验选择渠道方验证脚本,根据已知的业务调用关系,选择可能的调用链。然而这种方法容易受到个人主观判断和经验的影响,可能导致疏漏和偏差。并且这种方法通常不能准确反映实际生产环境中的最大流量情况,可能与真实流量情况相去甚远,可能无法有效地模拟潜在问题。

6、当前另一种调用链选择方法是使用技术方法,如广度优先搜索(bfs)算法或贪婪最佳优先搜索算法来寻找最可能的调用链。然而广度优先搜索(bfs)在大型金融机构微服务架构中,其中微服务数量可能达到百万级别,会导致巨大的时间开销。而贪婪最佳优先搜索算法虽然在开始时可能会选择代价较低的路径,但不能保证后续的路径选择也是最佳的,如果某个解在代价最大的点,那么贪婪最佳优先算法可能会陷入死循环,无法找到最佳解决方案。


技术实现思路

1、针对现有技术中的问题,本技术提供一种调用链选择方法及装置,能够找到在实际生产环境下最大概率调用到特定的业务处理层微服务的调用路径,从而能在验证环境中能更高效的模拟实际生产调用去做对应的混沌测试,更有效的发现相应的问题。

2、为了解决上述问题中的至少一个,本技术提供以下技术方案:

3、根据本技术实施例的第一方面,本技术提供一种调用链选择方法,包括:

4、对每个微服务的执行脚本进行埋点,并根据每个微服务的执行次数、调用对的前后相邻出现次数以及调用方出现次数,确定各微服务间的直接调用概率;

5、根据所述微服务的执行日志数据确定各微服务间的间接调用概率;

6、根据所述直接调用概率、所述间接调用概率以及预设的评价函数构建启发性算法模型,并基于所述启发性算法模型确定微服务最佳调用链路,其中,所述评价函数用于表征经过中间一微服务具有最大调用概率的从起始微服务到目标微服务的路径的直接调用概率之和。

7、根据本技术的任一实施方式,所述根据每个微服务的执行次数、调用对的前后相邻出现次数以及调用方出现次数,确定各微服务间的直接调用概率,包括:

8、根据每个微服务的执行次数、调用对的前后相邻出现次数以及调用方出现次数,确定各微服务被调用的联合概率和边缘概率;

9、根据所述联合概率以及所述边缘概率确定各微服务之间的转移概率,并将所述转移概率确定为所述直接调用概率。

10、根据本技术的任一实施方式,所述基于微服务的执行日志数据确定各微服务间的间接调用概率,包括:

11、获取微服务的执行日志数据,所述执行日志记录包含有每个微服务的编号以及调用关系;

12、将每个微服务事件编号在其被调方的微服务的执行日志出现的概率之和作为各微服务间的间接调用概率。

13、根据本技术的任一实施方式,所述根据所述直接调用概率、所述间接调用概率以及预设的评价函数构建启发性算法模型,包括:

14、获取从起始微服务到调用链中间微服务的直接调用概率之和,以及从中间微服务到目标微服务的间接调用概率之和;

15、将所述直接调用概率之和与所述间接调用概率之和相加,得到所述评价函数,并根据所述间接调用概率、所述直接调用概率以及所述评价函数构建启发性算法模型。

16、根据本技术的任一实施方式,所述基于所述启发性算法模型确定微服务最佳调用链路,包括:

17、从渠道方微服务开始,若被调的一微服务的直接调用概率加上已经累加的直接调用概率,以及所述微服务到目标微服务的间接调用概率之后,为所有的被调微服务之中最高,则确定所述微服务为调用链的下一个环节;

18、重复调用概率计算,直至当前微服务的下一个微服务中存在目标微服务,得到微服务最佳调用链路。

19、根据本技术的任一实施方式,在确定微服务最佳调用链路后,还包括:

20、根据所述最佳调用链路,确定由渠道方发起的特定范围的脚本;

21、在执行针对具体业务处理层微服务的混沌测试过程中,在相应渠道方执行所述特定范围的脚本。

22、根据本技术实施例的第二方面,本技术提供一种调用链选择装置,包括:

23、直接概率确定模块,用于:对每个微服务的执行脚本进行埋点,并根据每个微服务的执行次数、调用对的前后相邻出现次数以及调用方出现次数,确定各微服务间的直接调用概率;

24、间接概率确定模块,用于:根据所述微服务的执行日志数据确定各微服务间的间接调用概率;

25、调用链路确定模块,用于:根据所述直接调用概率、所述间接调用概率以及预设的评价函数构建启发性算法模型,并基于所述启发性算法模型确定微服务最佳调用链路,其中,所述评价函数用于表征经过中间一微服务具有最大调用概率的从起始微服务到目标微服务的路径的直接调用概率之和。

26、根据本技术的任一实施方式,所述直接概率确定模块包括:

27、第一概率计算单元,用于:根据每个微服务的执行次数、调用对的前后相邻出现次数以及调用方出现次数,确定各微服务被调用的联合概率和边缘概率;

28、第二概率计算单元,用于:根据所述联合概率以及所述边缘概率确定各微服务之间的转移概率,并将所述转移概率确定为所述直接调用概率。

29、根据本技术的任一实施方式,所述间接概率确定模块包括:

30、日志数据获取单元,用于:获取微服务的执行日志数据,所述执行日志记录包含有每个微服务的编号以及调用关系;

31、间接概率调用单元,用于:将每个微服务事件编号在其被调方的微服务的执行日志出现的概率之和作为各微服务间的间接调用概率。

32、根据本技术的任一实施方式,所述调用链路确定模块,包括:

33、概率调用单元,用于:获取从起始微服务到调用链中间微服务的直接调用概率之和,以及从中间微服务到目标微服务的间接调用概率之和;

34、模型构建单元,用于:将所述直接调用概率之和与所述间接调用概率之和相加,得到所述评价函数,并根据所述间接调用概率、所述直接调用概率以及所述评价函数构建启发性算法模型。

35、根据本技术的任一实施方式,所述调用链路确定模块,包括:

36、链路选择单元,用于:从渠道方微服务开始,若被调的一微服务的直接调用概率加上已经累加的直接调用概率,以及所述微服务到目标微服务的间接调用概率之后,为所有的被调微服务之中最高,则确定所述微服务为调用链的下一个环节;

37、链路确定单元,用于:重复调用概率计算,直至当前微服务的下一个微服务中存在目标微服务,得到微服务最佳调用链路。

38、根据本技术的任一实施方式,在确定微服务最佳调用链路后,还包括脚本执行模块,包括:

39、脚本确定单元,用于:根据所述最佳调用链路,确定由渠道方发起的特定范围的脚本;

40、脚本执行单元,用于:在执行针对具体业务处理层微服务的混沌测试过程中,在相应渠道方执行所述特定范围的脚本。

41、根据本技术实施例的第三方面,本技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的调用链选择方法的步骤。

42、根据本技术实施例的第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的调用链选择方法的步骤。

43、根据本技术实施例的第五方面,本技术提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述的调用链选择方法的步骤。

44、由上述技术方案可知,本技术提供一种调用链选择方法及装置,通过对每个微服务的执行脚本进行埋点,并根据每个微服务的执行次数、调用对的前后相邻出现次数以及调用方出现次数,确定各微服务间的直接调用概率;根据所述微服务的执行日志数据确定各微服务间的间接调用概率;根据所述直接调用概率、所述间接调用概率以及预设的评价函数构建启发性算法模型,并基于所述启发性算法模型确定微服务最佳调用链路;能够确定在实际生产环境下最大概率调用到特定的业务处理层微服务的调用路径,从而能在验证环境中能更高效的模拟实际生产调用去做对应的混沌测试,更有效的发现相应的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1