【技术实现步骤摘要】
一种基于依赖关系图的微服务性能诊断方法及系统
[0001]本专利技术涉及数据处理
,特别是涉及一种基于依赖关系图的微服务性能诊断方法及系统。
技术介绍
[0002]在新兴商业模式(例如,电商平台)和IT技术(例如,云计算和云原生)驱动下,软件的体系结构正在快速地从庞大的单体架构向微服务架构转变。微服务是一种架构设计思想,正在成为设计现代大型应用的流行选择,通过微服务,可将大型单体应用分解成多个独立的组件,其中每个组件都有各自的责任领域并可以独立地开发和部署,微服务架构在电商网站、物流平台、支付系统等应用领域均有成功案例。其主要优势包括极大地加速了开发、部署和交付的速度,简化了故障调试和恢复的过程,使软件系统具备强大的可扩展性,并产生丰富的软件开发技术栈。
[0003]尽管微服务架构有那么多优势,但是由于外部(例如资源争用、硬件故障、配置环境更改等)和内部(例如软件BUG)的问题,性能问题在微服务系统中并不罕见,而这会对企业收入带来重大影响。为了保证微服务连续可靠地运行,及时地检测出性能问题、诊断出导致性能问题反复发生的根本原因、定位可能的性能瓶颈并向管理员或运维人员给出一些可能的操作建议是至关重要的。
[0004]然而,随着越来越多的具有复杂交互关系的微服务运行在动态云环境中,识别和定位异常服务变得非常困难。现有的技术要么在性能诊断的精确性上存在很大偏差;要么要求侵入应用程序或平台的源代码以获得服务依赖指标;要么就是不能适应动态的微服务环境,一旦微服务的架构发生改变或扩展,性能诊断的精确性就会急 ...
【技术保护点】
【技术特征摘要】
1.一种基于依赖关系图的微服务性能诊断方法,其特征在于,所述方法包括:采集服务实例间的网络连接信息和服务实例的SLO指标数据;利用3σ经验规则检测所述SLO指标数据是否异常;当检测到所述SLO指标数据异常时:利用所述网络连接信息构建所述服务实例间的通信服务实例依赖;利用所述SLO指标数据构建所述服务实例间的非通信服务实例依赖;将所述通信服务实例依赖与所述非通信服务实例依赖合并,得到依赖关系图;所述依赖关系图中的每个节点表示服务实例,两个节点之间的有向边表示两个服务实例之间的依赖关系;从所述依赖关系图中的根异常节点开始,沿着目标方向遍历所述依赖关系图,寻找异常节点;所述异常节点为SLO指标数据异常的节点;所述根异常节点为建立所述依赖关系图时检测到的异常节点;所述目标方向为依赖关系的相反方向;找到异常节点后,检测所述异常节点沿着所述目标方向上的所有相邻节点;若所有相邻节点均为正常的相邻节点,则将所述异常节点添加至异常节点候选集;若相邻节点中存在异常的相邻节点,则将所述异常的相邻节点作为异常节点,并返回“找到异常节点后,检测所述异常节点沿着所述目标方向上的所有相邻节点”步骤;利用皮尔逊相关系数计算所述异常节点候选集中的异常节点的分数;输出分数最高的异常节点。2.根据权利要求1所述的基于依赖关系图的微服务性能诊断方法,其特征在于,所述服务实例为M个微服务组件同时部署在不同的N台服务器上得到的若干个服务实例。3.根据权利要求2所述的基于依赖关系图的微服务性能诊断方法,其特征在于,所述采集服务实例间的网络连接信息和服务实例的SLO指标数据,具体包括:通过一直轮询拦截网络套接字的方式捕获服务实例间的网络连接信息;从所述服务器中获取SLO指标数据。4.根据权利要求1所述的基于依赖关系图的微服务性能诊断方法,其特征在于,在所述采集服务实例间的网络连接信息和服务实例的SLO指标数据之后,还包括:将所述SLO指标数据以时间折线图的形式进行可视化展示。5.根据权利要求1所述的基于依赖关系图的微服务性能诊断方法,其特征在于,所述利用所述网络连接信息构建所述服务实例间的通信服务实例依赖,具体包括:利用设定时间内收集的网络连接信息构建所述服务实例间的通信服务实例依赖;所述通信服务实例依赖表示通过网络直接通信的服务实例之间的依赖关系;所述设定时间为距离检测到异常之前的设定时间。6.根据权利要求1所述的基于依赖关系图的微服务性能诊断方法,其特征在于,利用所述SLO指标数据构建所述服务实例间的非通信服务实例依赖,具体包括:将SLO指标数据对应的服务实例节点以两两连线的方式生成一个完全无向图;删除所述完全无向图中条件独立的服务实例节点间的无向边;利用D分隔原理确...
【专利技术属性】
技术研发人员:程学林,宋孝成,蒋烁淼,杨小虎,
申请(专利权)人:上海驻云信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。