微服务调用链路更新方法技术

技术编号:39578379 阅读:8 留言:0更新日期:2023-12-03 19:29
本发明专利技术提供一种微服务调用链路更新方法

【技术实现步骤摘要】
微服务调用链路更新方法、装置、系统和存储介质


[0001]本专利技术涉及计算机网络架构
,尤其涉及一种微服务调用链路更新方法

装置

系统和存储介质


技术介绍

[0002]微服务架构因其具有易扩展

易维护

高可靠

高可用等特点,在如今的企业中得到了广泛的应用,为业务分隔

服务复用

敏捷开发带来了极大便利

但随着业务场景越来越丰富,业务领域越来越广泛,服务数量也随之越来越庞大,系统复杂度随之提高,系统变化也日趋频繁,导致系统中服务间的调用关系也随之变得错综复杂

因此中,如何定位特定服务被其他哪些服务所调用,甚至服务中某个改动对其他服务的影响面分析也逐渐成为微服务架构的开发人员所面临的问题和痛点

现有技术中,三个主流的基于链路追踪技术的监控系统
Zipkin、SkyWalking
和阿里巴巴的
Eagle
系统框架都是基于
Service Mesh
的思想,核心在于性能监控和实时的故障排查,只收集部分链路调用信息,而且是采用动态收集方式收集服务调用信息,从而形成服务调用链路,即这些框架需要在线上业务操作的基础上进行记录,因此,目前开发人员通过接口调用关系的时候,大多还是通过口口相传,手动记录的方式进行,导致服务调用链路梳理效率低且收集到的服务调用链路不完整,同时在业务代码更新时,不会对服务调用链路数据进行更新


技术实现思路

[0003]本专利技术提供一种微服务调用链路更新方法

装置

系统和存储介质,用以解决现有技术中开发人员需要手动记录接口调用关系,导致服务调用链路梳理效率低且收集到的服务调用链路不完整,只能在服务调用后进行动态更新,引入代码侵入隐患的缺陷

[0004]第一方面,本专利技术提供一种微服务调用链路更新方法,应用于客户端,包括:
[0005]响应于业务代码合并事件,收集所述业务代码合并事件对应的微服务调用关系数据;
[0006]解析所述业务代码合并事件对应的微服务调用关系数据,得到微服务调用链路数据,所述微服务调用链路数据包括微服务内部方法级别调用链路数据和微服务间接口级别调用链路数据;
[0007]将所述微服务调用链路数据发送至服务端,以使服务端根据所述微服务调用链路数据更新已有微服务调用链路数据

[0008]根据本专利技术提供的一种微服务调用链路更新方法,所述收集所述业务代码合并事件对应的微服务调用关系数据,包括:
[0009]在测试环境,通过字节码增强方式收集第一微服务内方法级别调用关系数据;
[0010]通过抽象语法树收集第二微服务内方法级别调用关系数据;
[0011]整合所述第一微服务内方法级别调用关系数据和所述第二微服务内方法级别调用关系数据,得到微服务内方法级别调用关系数据

[0012]根据本专利技术提供的一种微服务调用链路更新方法,所述通过字节码增强方式收集第一微服务内方法级别调用关系数据,包括:
[0013]在所述业务代码合并事件对应的微服务的类中添加字节码,所述字节码包括收集链路字节码

解析链路字节码中的至少一种;
[0014]根据添加的字节码对所述业务代码合并事件对应的微服务的类中的方法进行解析,得到第一微服务内方法级别调用关系数据

[0015]根据本专利技术提供的一种微服务调用链路更新方法,所述通过抽象语法树收集第二微服务内方法级别调用关系数据,包括:
[0016]对所述业务代码合并事件对应的微服务的类文件进行字节码序列化解析;
[0017]将解析出的字节码形式类文件转换为抽象语法树形式类文件,得到第二微服务内方法级别调用关系数据

[0018]根据本专利技术提供的一种微服务调用链路更新方法,所述解析所述业务代码合并事件对应的微服务调用关系数据,得到微服务调用链路数据,包括:
[0019]输入所述微服务内方法级别调用关系数据至第一有向拓扑模型,求解所述第一有向拓扑模型,得到微服务内方法级别调用链路数据;
[0020]根据所述微服务内方法级别调用链路数据,获得所述微服务内方法级别调用链路数据的起点

终点和微服务间接口级别调用关系数据;
[0021]输入所述微服务间接口级别调用关系数据至第二有向拓扑模型,求解所述第二有向拓扑模型,得到微服务间接口级别调用链路数据;
[0022]整合所述微服务内方法级别调用链路数据和所述微服务间接口级别调用链路数据,得到微服务调用链路数据

[0023]根据本专利技术上述任一项提供的微服务调用链路更新方法,所述微服务调用链路数据采用自定义数据协议,所述自定义数据协议内容包括调用服务名称

调用服务接口路径

被调用服务名称

被调用服务接口

调用类型中的至少一种

[0024]第二方面,本专利技术提供一种微服务调用链路更新方法,应用于服务端,包括:
[0025]接收客户端发送的微服务调用链路数据;
[0026]根据接收到的微服务调用链路数据更新已有微服务调用链路数据

[0027]根据本专利技术提供的微服务调用链路更新方法,所述根据接收到的微服务调用链路数据更新已有微服务调用链路数据,包括:
[0028]根据接收到的微服务调用链路数据增加已有微服务调用链路数据对应的新微服务调用接口和
/
或微服务调用关系;
[0029]和
/
或,
[0030]根据接收到的微服务调用链路数据剔除已有微服务调用链路数据对应的微服务调用接口和
/
或微服务调用关系

[0031]第三方面,本专利技术还提供一种微服务调用链路更新方法,包括:
[0032]客户端响应于业务代码合并事件,收集所述业务代码合并事件对应的微服务调用关系数据;
[0033]解析所述业务代码合并事件对应的微服务调用关系数据,得到微服务调用链路数据,所述微服务调用链路数据包括微服务内部方法级别调用链路数据和微服务间接口级别
调用链路数据;
[0034]将所述微服务调用链路数据发送至服务端;
[0035]服务端接收客户端发送的微服务调用链路数据;
[0036]根据接收到的微服务调用链路数据更新已有微服务调用链路数据

[0037]第四方面,本专利技术还提供一种微服务调用链路更新装置,应用于客户端,包括:
[0038]收集模块,用于响应于业务代码合并事件,收集所述业务代码合并事件对应的微服务调用关系数据;
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种微服务调用链路更新方法,其特征在于,应用于客户端,包括:响应于业务代码合并事件,收集所述业务代码合并事件对应的微服务调用关系数据;解析所述业务代码合并事件对应的微服务调用关系数据,得到微服务调用链路数据,所述微服务调用链路数据包括微服务内部方法级别调用链路数据和微服务间接口级别调用链路数据;将所述微服务调用链路数据发送至服务端,以使服务端根据所述微服务调用链路数据更新已有微服务调用链路数据
。2.
根据权利要求1所述的微服务调用链路更新方法,其特征在于,所述收集所述业务代码合并事件对应的微服务调用关系数据,包括:在测试环境,通过字节码增强方式收集第一微服务内方法级别调用关系数据;通过抽象语法树收集第二微服务内方法级别调用关系数据;整合所述第一微服务内方法级别调用关系数据和所述第二微服务内方法级别调用关系数据,得到微服务内方法级别调用关系数据
。3.
根据权利要求2所述的微服务调用链路更新方法,其特征在于,所述通过字节码增强方式收集第一微服务内方法级别调用关系数据,包括:在所述业务代码合并事件对应的微服务的类中添加字节码,所述字节码包括收集链路字节码

解析链路字节码中的至少一种;根据添加的字节码对所述业务代码合并事件对应的微服务的类中的方法进行解析,得到第一微服务内方法级别调用关系数据
。4.
根据权利要求2所述的微服务调用链路更新方法,其特征在于,所述通过抽象语法树收集第二微服务内方法级别调用关系数据,包括:对所述业务代码合并事件对应的微服务的类文件进行字节码序列化解析;将解析出的字节码形式类文件转换为抽象语法树形式类文件,得到第二微服务内方法级别调用关系数据
。5.
根据权利要求2所述的微服务调用链路更新方法,其特征在于,所述解析所述业务代码合并事件对应的微服务调用关系数据,得到微服务调用链路数据,包括:输入所述微服务内方法级别调用关系数据至第一有向拓扑模型,求解所述第一有向拓扑模型,得到微服务内方法级别调用链路数据;根据所述微服务内方法级别调用链路数据,获得...

【专利技术属性】
技术研发人员:饶航朱月辉
申请(专利权)人:贝壳技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1