基于Nacos实现服务调用链路可视化的方法及装置与流程

文档序号:35664487发布日期:2023-10-06 19:49阅读:81来源:国知局
基于Nacos实现服务调用链路可视化的方法及装置与流程

本申请属于服务调用,尤其涉及一种基于nacos实现服务调用链路可视化的方法及装置。


背景技术:

1、随着业务系统的飞快发展以及微服务技术的应用,各个系统被拆分为多个子服务,在各个子服务中均会依赖其他服务所提供的api接口,造成调用链路错综复杂,再加上不同子服务都由不同开发团队开发,如果没有对服务调用链路加以规范,很容易造成调用混乱的情况。同时由于服务提供方所提供的接口拥有众多服务调用方,如果接口发生变更或者迭代升级时,亦需通知服务调用方检查业务。

2、目前主流的服务链路监控框架如skywalking、sleuth等只是api在真实被调用时监控各个系统的上下游调用链路信息,偏向于事后追踪,无法做到在开发测试阶段识别调用链路,及时规避调用混乱的问题。


技术实现思路

1、有鉴于此,本申请旨在提出一种基于nacos实现服务调用链路可视化的方法及装置,以解决服务链路监控框架仅是api在真实被调用时监控各个系统的上下游调用链路信息,偏向于事后追踪,无法做到在开发测试阶段识别调用链路,及时规避调用混乱的问题。

2、为达到上述目的,本申请的技术方案是这样实现的:

3、第一方面,本申请提供了一种基于nacos实现服务调用链路可视化的方法,所述方法包括:

4、获取服务注册列表;

5、根据所述服务注册列表明确当前服务类型,并根据所述当前服务类型确定当前服务调用方与被调用方,其中所述当前服务类型包括网关或普通服务;

6、根据调用关系生成链路图,并将所述链路图通过前端页面进行可视化展示。

7、进一步地,所述获取服务注册列表包括:

8、自定义springboot starter组件,各个子服务通过maven依赖管理工具引用所述springboot starter组件;

9、各个子服务启动时,从spring容器中获取nacos注册中心的discoveryclient对象以及拥有@feignclient注解的对象集合;其中,所述discoveryclient表示服务发现操作对象,feignclient表示服务之间调用的操作类。

10、进一步地,所述根据所述服务注册列表明确当前服务类型,并根据所述当前服务类型确定当前服务调用方与被调用方,其中所述当前服务类型包括网关或普通服务,包括:

11、识别各个子服务所使用的feignclient;

12、解析所述feignclient中的value值或url作为所依赖的子服务的唯一标识,通过所述唯一标识得到所述服务列表对应的子服务。

13、进一步地,响应于获取普通子服务信息,通过discoveryclient.getinstances方法获取注册至nacos注册中心的所有服务,并获取其服务id、服务ip、服务端口。

14、进一步地,响应于获取api网关路由信息,判断当前spring容器中是否存在routedefinition对象,如果存在则判定为api网关,并获取routedefinition定义的所有服务路由信息。

15、进一步地,依次解析@feignclient注解的对象集合,从feignclient注解中读取相应的属性值,包含服务提供方id、服务提供方名称、服务提供方url参数;

16、将当前服务id与所依赖的服务id的一对多关联关系保存至内存中。

17、进一步地,所述根据调用关系生成链路图,并将所述链路图通过前端页面进行可视化展示,包括:

18、以api网关为顶层节点,所有路由清单为二级节点,通过所述当前服务id和所依赖的服务id采用遍历的形式获取所有下级节点,直至遍历到最下游节点,以生成链路图;

19、前端页面通过图可视化引擎antv g6将所述链路图进行可视化展示,以展示各节点之间的链路状态。

20、第二方面,基于同一发明构思,本申请还提供了一种基于nacos实现服务调用链路可视化的装置,所述装置包括:

21、获取模块,被配置为获取服务注册列表;

22、服务类型确定模块,被配置为根据所述服务注册列表明确当前服务类型,并根据所述当前服务类型确定当前服务调用方与被调用方,其中所述当前服务类型包括网关或普通服务;

23、可视化模块,被配置为根据调用关系生成链路图,并将所述链路图通过前端页面进行可视化展示。

24、第三方面,基于同一发明构思,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的一种基于nacos实现服务调用链路可视化的方法。

25、第四方面,基于同一发明构思,本申请还提供了一种非暂态计算机可读存储介质,其中,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如第一方面所述的一种基于nacos实现服务调用链路可视化的方法。

26、相对于现有技术,本申请所述的基于nacos实现服务调用链路可视化的方法及装置具有以下有益效果:

27、本申请所述的基于nacos实现服务调用链路可视化的方法及装置,所述方法通过获取服务注册列表,根据服务注册列表明确当前服务类型,并根据当前服务类型确定当前服务调用方与被调用方,根据调用关系生成链路图,并将链路图通过前端页面进行可视化展示,本申请可用于开发测试过程中识别调用链路,提前发现不合理的服务依赖,保证系统的调用链路层次清晰。



技术特征:

1.一种基于nacos实现服务调用链路可视化的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于nacos实现服务调用链路可视化的方法,其特征在于,所述获取服务注册列表,包括:

3.根据权利要求2所述的一种基于nacos实现服务调用链路可视化的方法,其特征在于,所述根据所述服务注册列表明确当前服务类型,并根据所述当前服务类型确定当前服务调用方与被调用方,其中所述当前服务类型包括网关或普通服务,包括:

4.根据权利要求3所述的一种基于nacos实现服务调用链路可视化的方法,其特征在于:

5.根据权利要求3所述的一种基于nacos实现服务调用链路可视化的方法,其特征在于:

6.根据权利要求5所述的一种基于nacos实现服务调用链路可视化的方法,其特征在于:

7.根据权利要求6所述的一种基于nacos实现服务调用链路可视化的方法,其特征在于,所述根据调用关系生成链路图,并将所述链路图通过前端页面进行可视化展示,包括:

8.一种基于nacos实现服务调用链路可视化的装置,其特征在于,所述装置包括:

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述的一种基于nacos实现服务调用链路可视化的方法。

10.一种非暂态计算机可读存储介质,其特征在于,其中,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7任一项所述的一种基于nacos实现服务调用链路可视化的方法。


技术总结
本申请提供了一种基于Nacos实现服务调用链路可视化的方法及装置,所述方法包括:获取服务注册列表;根据所述服务注册列表明确当前服务类型,并根据所述当前服务类型确定当前服务调用方与被调用方,其中所述当前服务类型包括网关或普通服务;根据调用关系生成链路图,并将所述链路图通过前端页面进行可视化展示。本申请所述的基于Nacos实现服务调用链路可视化的方法及装置能够用于开发测试过程中识别调用链路,提前发现不合理的服务依赖,保证系统的调用链路层次清晰。

技术研发人员:邹虎
受保护的技术使用者:紫光云技术有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1