一种微服务架构运行异常的监测方法及系统与流程

allin2026-02-24  23


本发明属于服务器监测领域,具体而言涉及一种微服务架构运行异常的监测方法及系统。


背景技术:

1、随着互联网技术的发展和业务需求的不断增长,现代软件系统的复杂性与规模日益增加。传统的单体架构逐渐难以满足快速迭代、弹性扩展和高可用性的要求,微服务架构因此应运而生。微服务架构通过将单一的大型应用拆分为多个独立的小型服务,每个服务专注于完成特定的业务功能,并通过轻量级的通信机制(如http/rest、grpc等)进行交互。这种架构在提升系统灵活性、开发效率和扩展能力方面展现出了显著优势。

2、然而,微服务架构的引入也带来了新的挑战。由于服务数量的增加及其独立部署的特性,服务间的依赖关系变得复杂且动态。服务之间的调用链可能涉及多个节点,系统的整体状态难以通过传统的监控手段来全面掌握。同时,服务调用的频率、响应时间、错误率等性能指标会受到多方面因素的影响,在实际运行中,这些指标的波动可能预示着潜在的异常或系统故障。如果这些异常不能及时被发现和处理,可能会导致系统性能下降,甚至引发更严重的服务中断。

3、传统的监控方法主要依赖于对单个服务或节点的静态监控,如资源使用率、请求数和响应时间等。这些方法往往只能捕捉单点问题,难以有效监测复杂系统中服务间的动态依赖关系。此外,传统方法缺乏对系统整体行为的分析,无法捕捉到微服务架构中由于服务调用关系变化引发的潜在异常。因此,如何实时、准确地监控微服务架构中的服务依赖关系,及时发现并响应异常,成为了当前系统运维和管理领域急需解决的技术问题。


技术实现思路

1、为了解决现有技术中的智能合同审核问题,提出一种微服务架构运行异常的监测方法及系统。

2、在一种实施方式中,本发明提出一种微服务架构运行异常的监测方法,包括如下步骤:

3、通过滑动窗口的方式获取所述微服务所涉及的网关的日志;

4、解析所述网关的日志提取服务调用链;

5、根据所述服务调用链构建服务间依赖关系;

6、根据所述依赖关系构建有向图,所述有向图中节点表示微服务,边表示服务间的调用关系,边的方向从来源服务指向目标服务,边的属性为服务调用次数、响应时间以及错误率;

7、根据所述边的属性将所述有向图分割成多个子图;

8、对每一个子图,检测最近预设数量个滑动窗口内是否有相似子图,如果没有,则相应的子图内的微服务之间存在调用异常。

9、进一步地,解析所述网关的日志提取服务调用链具体包括:

10、从api网关获取记录的日志数据;

11、对收集到的日志进行过滤,保留与服务调用相关的信息;

12、根据请求id,将同一请求在不同服务节点的日志记录关联在一起;

13、通过分析关联的日志记录,确定请求在各个服务节点之间的调用顺序;

14、将提取到的服务调用链以结构化的形式输出。

15、进一步地,所述根据所述服务调用链构建服务间依赖关系包括:

16、从服务调用链中识别出所有涉及的服务节点,每个节点代表一个独立的微服务;

17、对于每一条服务调用链,分析其中的调用顺序,确定哪些服务之间存在直接的调用关系;

18、根据所述调用关系进行依赖关系的累积与聚合;

19、根据调用频率、响应时间、错误率为依赖关系进行权重赋值。

20、进一步地,所述根据所述依赖关系构建有向图包括:

21、从服务依赖关系中提取所有微服务,创建相应的节点;

22、根据服务依赖关系中的调用顺序,在节点之间创建有向边;

23、为每条边赋予属性,包括服务调用次数、响应时间和错误率。

24、进一步地,所述根据所述边的属性将所述有向图分割成多个子图的约束条件为:

25、子图内的服务之间具有强的依赖关系;

26、子图之间的服务依赖少,减少跨子图的服务调用。

27、进一步地,所述根据所述边的属性将所述有向图分割成多个子图的步骤为:

28、对于每条边计算其权重:

29、;

30、其中,α、β、γ 是可调节的权重系数,用于平衡不同属性的重要性,其中i,j是节点编号,调用次数ij表示节点i调用节点j的次数,响应时间ij表示表示节点i调用节点j时的响应时间,错误率ij表示节点i调用节点j时的错误率;

31、根据计算得到的权重值,对所有边进行排序,从高到低排列;

32、将每个节点视为单独的子图 ,开始时系统中有 n个子图,其中 n是节点的总数,i和j是节点编号;

33、从权重最高的边开始,依次检查每条边,如果边连接的节点i和j分属不同的子图,则合并这两个子图合并后的新子图包含所有从i到j的路径,并保留该路径上的所有节点;继续合并操作,直到满足子图数量达到预期值或跨子图的边权重低于某个阈值;

34、当所有边都被处理完毕,或跨子图的边权重均低于预设的阈值时,算法停止;此时,图被划分为若干个子图,每个子图内部的节点依赖关系强,子图之间的依赖较弱。

35、进一步地,计算两个子图之间的边权重相似度的方法包括:

36、对于当前子图 和前一个滑动窗口的子图,计算它们的相似度:

37、;

38、其中和分别表示当前子图和过去子图中相应边e的权重,e是两个子图中共同的边集。

39、进一步地,所述滑动窗口的大小为10分钟,步长为5分钟。

40、进一步地,确定服务调用出现异常的子图后,向用户展示子图内的节点以及调用关系。

41、另一方面,本发明还提供一种微服务架构运行异常的监测系统,包括如下模块:

42、获取模块,用于通过滑动窗口的方式获取所述微服务所涉及的网关的日志;

43、解析模块,用于解析所述网关的日志提取服务调用链;

44、构建模块,用于根据所述服务调用链构建服务间依赖关系;

45、构图模块,用于根据所述依赖关系构建有向图,所述有向图中节点表示微服务,边表示服务间的调用关系,边的方向从来源服务指向目标服务,边的属性为服务调用次数、响应时间以及错误率;

46、分割模块,用于根据所述边的属性将所述有向图分割成多个子图;

47、检测模块,用于对每一个子图,检测最近预设数量个滑动窗口内是否有相似子图,如果没有,则相应的子图内的微服务之间存在调用异常。

48、本发明通过上述技术方案,可以产生如下有益效果:

49、(1)通过滑动窗口和有向图技术,精确捕捉微服务架构中服务之间的调用关系和依赖变化。结合边权重(如调用次数、响应时间、错误率)的相似性计算,能够精确检测出异常调用行为,而不仅仅是依赖关系的简单变化,从而减少误报,提高异常检测的准确性。

50、(2)利用滑动窗口技术,方案能够实时更新并监控系统中服务之间的依赖关系。随着时间的推移,滑动窗口可以捕捉到系统的动态变化,确保监控结果的时效性和准确性。这种动态监控方式适应了微服务架构的弹性和变化性,能够及时发现潜在的异常情况。

51、(3)通过将复杂的有向图分割成多个子图,并对每个子图进行独立的相似性检测,方案有效地简化了复杂依赖关系的分析。模块化的子图分析不仅有助于快速定位异常服务,还能将故障范围限制在局部区域,降低系统整体受到的影响。

52、(4)滑动窗口技术和相似子图检测的结合,不仅可以用于短期的异常检测,还可以通过长期数据积累进行趋势分析。运维团队可以利用这些趋势数据进行系统优化,识别出长期存在的性能问题或潜在瓶颈,进一步提升系统的整体性能和稳定性。


技术特征:

1.一种微服务架构运行异常的监测方法,其特征在于,所述方法包括如下步骤:

2.根据权利要求1所述的一种微服务架构运行异常的监测方法,其特征在于,所述解析所述网关的日志提取服务调用链具体包括:

3.根据权利要求1所述的一种微服务架构运行异常的监测方法,其特征在于,所述根据所述服务调用链构建服务间依赖关系包括:

4.根据权利要求1所述的一种微服务架构运行异常的监测方法,其特征在于,所述根据所述依赖关系构建有向图包括:

5.根据权利要求1所述的一种微服务架构运行异常的监测方法,其特征在于,所述根据所述边的属性将所述有向图分割成多个子图的约束条件为:

6.根据权利要求5所述的一种微服务架构运行异常的监测方法,其特征在于,所述根据所述边的属性将所述有向图分割成多个子图的步骤为:

7.根据权利要求1所述的一种微服务架构运行异常的监测方法,其特征在于,计算两个子图之间的边权重相似度的方法包括:

8.根据权利要求1所述的一种微服务架构运行异常的监测方法,其特征在于,所述滑动窗口的大小为10分钟,步长为5分钟。

9.根据权利要求1所述的一种微服务架构运行异常的监测方法,其特征在于,确定服务调用出现异常的子图后,向用户展示子图内的节点以及调用关系。

10.一种微服务架构运行异常的监测系统,其特征在于,所述系统包括如下模块:


技术总结
本发明属于服务器监测领域,提供一种微服务架构运行异常的监测方法及系统,包括:通过滑动窗口的方式获取所述微服务所涉及的网关的日志;解析所述网关的日志提取服务调用链;根据所述服务调用链构建服务间依赖关系;根据所述依赖关系构建有向图;根据所述边的属性将所述有向图分割成多个子图;对每一个子图,检测最近预设数量个滑动窗口内是否有相似子图,如果没有,则相应的子图内的微服务之间存在调用异常。本发明可以提高微服务架构运行异常的监测的效率。

技术研发人员:兰满桔,封林,张禹豪
受保护的技术使用者:广州尚航信息科技股份有限公司
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-26905.html

最新回复(0)