CN111831548B - 一种依赖关系拓扑图的绘制方法和装置 - Google Patents
一种依赖关系拓扑图的绘制方法和装置 Download PDFInfo
- Publication number
- CN111831548B CN111831548B CN202010477669.5A CN202010477669A CN111831548B CN 111831548 B CN111831548 B CN 111831548B CN 202010477669 A CN202010477669 A CN 202010477669A CN 111831548 B CN111831548 B CN 111831548B
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- services
- dependency
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000001419 dependent effect Effects 0.000 claims abstract description 84
- 238000012360 testing method Methods 0.000 claims description 49
- 238000012216 screening Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 14
- 230000009193 crawling Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 24
- 238000001914 filtration Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 238000013522 software testing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种依赖关系拓扑图的绘制方法和装置,其中,该方法包括:从多个微服务的微服务代码文件中获取多个微服务之间的目标服务依赖关系,其中,目标服务依赖关系包括在目标集群目标命名空间下的服务依赖关系和在不同集群不同命名空间下的服务依赖关系;从目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务;根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制多个微服务对应的依赖关系拓扑图。本申请解决了相关技术中微服务间依赖关系拓扑图的绘制灵活性较低的技术问题。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种依赖关系拓扑图的绘制方法和装置。
背景技术
现有的技术需要软件测试工程师把服务部署到云服务商的服务器,并且熟悉服务商的微服务操作手册,无形中增加了学习成本,另外,云服务商提供的服务依赖技术是基于同一集群同一命名空间来汇总服务节点依赖,无法兼容不同集群不同命名空间下的服务调用。微服务间依赖关系拓扑图的绘制缺乏灵活性。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种依赖关系拓扑图的绘制方法和装置,以至少解决相关技术中微服务间依赖关系拓扑图的绘制灵活性较低的技术问题。
根据本申请实施例的一个方面,提供了一种依赖关系拓扑图的绘制方法,包括:
从多个微服务的微服务代码文件中获取所述多个微服务之间的目标服务依赖关系,其中,所述目标服务依赖关系包括在目标集群目标命名空间下的服务依赖关系和在不同集群不同命名空间下的服务依赖关系;
从所述目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务;
根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图。
根据本申请实施例的另一方面,还提供了一种依赖关系拓扑图的绘制装置,包括:
第一获取模块,用于从多个微服务的微服务代码文件中获取所述多个微服务之间的目标服务依赖关系,其中,所述目标服务依赖关系包括在目标集群目标命名空间下的服务依赖关系和在不同集群不同命名空间下的服务依赖关系;
第二获取模块,用于从所述目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务;
绘制模块,用于根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图。
可选地,所述第一获取模块包括:
获取单元,用于获取所述多个微服务的所述微服务代码文件;
识别单元,用于从所述微服务代码文件中识别所述多个微服务中每个微服务的初始化信息;
提取单元,用于从所述初始化信息中提取所述目标服务依赖关系。
可选地,所述获取单元用于:
接收爬虫任务传输的加密文件,其中,所述爬虫任务用于爬取所述微服务代码文件并对爬取到的所述微服务代码文件进行加密得到所述加密文件;
对所述加密文件进行解密,得到所述微服务代码文件。
可选地,所述初始化信息包括:每个微服务运行的依赖包和每个微服务初始化关联的微服务,其中,所述提取单元用于:
根据所述每个微服务运行的依赖包区分每个微服务所在的集群和命名空间;
根据所述每个微服务初始化关联的微服务确定微服务间的依赖关系;
根据每个微服务所在的集群和命名空间,以及,微服务间的服务依赖关系,获取第一服务依赖关系和第二服务依赖关系作为所述目标服务依赖关系,其中,所述第一服务依赖关系为在目标集群目标命名空间下的服务依赖关系,所述第二服务依赖关系为在不同集群不同命名空间下的服务依赖关系。
可选地,所述第二获取模块包括:
第一分类单元,用于根据所述目标服务依赖关系将所述多个微服务按照集群进行分类得到所述具有对应关系的集群和微服务;
第二分类单元,用于根据所述目标服务依赖关系将所述多个微服务按照命名空间进行分类得到所述具有对应关系的命名空间和微服务;
第三分类单元,用于根据所述目标服务依赖关系将所述多个微服务按照依赖服务进行分类得到所述具有对应关系的依赖服务和被依赖服务。
可选地,所述绘制模块包括:
绘制单元,用于根据具有对应关系的集群和微服务,以及具有对应关系的命名空间和微服务,绘制每个集群每个命名空间下微服务的初始拓扑图;
标记单元,用于根据具有对应关系的依赖服务和被依赖服务在所述初始拓扑图上使用预设的记号标记微服务间的依赖关系,得到所述依赖关系拓扑图,其中,所述预设的记号用于从被依赖服务指向依赖服务。
可选地,所述装置还包括:
第三获取模块,用于在根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图之后,获取第一筛选信息,其中,所述第一筛选信息用于对服务信息进行筛选,其中,所述服务信息包括以下至少之一:集群,命名空间,微服务;
第四获取模块,用于从所述多个微服务对应的依赖关系拓扑图中获取所述第一筛选信息对应的目标依赖关系拓扑图;
展示模块,用于展示所述目标依赖关系拓扑图。
可选地,所述装置还包括:
第五获取模块,用于在展示所述目标依赖关系拓扑图之后,获取第二筛选信息,其中,所述第二筛选信息用于对所述目标依赖关系拓扑图上展示的初始依赖关系进行筛选,得到目标依赖关系;
替换模块,用于响应所述第二筛选信息将所述目标依赖关系拓扑图替换为展示所述目标依赖关系的依赖关系拓扑图;
第六获取模块,用于获取所述目标依赖关系对应的测试场景;
执行模块,用于执行所述测试场景对所述目标依赖关系进行测试,得到测试结果。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
在本申请实施例中,采用从多个微服务的微服务代码文件中获取多个微服务之间的目标服务依赖关系,其中,目标服务依赖关系包括在目标集群目标命名空间下的服务依赖关系和在不同集群不同命名空间下的服务依赖关系;从目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务;根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制多个微服务对应的依赖关系拓扑图的方式,基于服务的初始化代码文件来汇总服务节点依赖,突破集群和命名空间的限制,既可以查询特定集群特定命名空间下的服务依赖,也可以查询不同集群不同命名空间下的服务依赖,从而实现了提高微服务间依赖关系拓扑图的绘制灵活性的技术效果,进而解决了相关技术中微服务间依赖关系拓扑图的绘制灵活性较低的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的依赖关系拓扑图的绘制方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的依赖关系拓扑图的绘制方法的流程图;
图3是根据本申请可选的实施方式的从微服务代码文件中获取到的服务依赖关系的示意图;
图4是根据本申请可选的实施方式的依赖关系拓扑图的示意图;
图5是根据本申请可选的实施方式的爬取微服务的代码文件的示意图;
图6是根据本申请可选的实施方式的汇总微服务依赖关系的示意图;
图7是根据本申请可选的实施方式的绘制微服务的拓扑结构图的示意图;
图8是根据本申请可选的实施方式的测试微服务间依赖关系的示意图;
图9是根据本申请可选实施例的依赖关系拓扑图的绘制过程的示意图;
图10是根据本申请实施例的一种可选的依赖关系拓扑图的绘制装置的示意图;
以及
图11是根据本申请实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先对在本实施例中使用的部分技术术语的含义进行以下说明:
微服务:是一种架构模式,将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通,每个服务都围绕着具体业务进行构建,能够通过各种网络传输协议把应用的逻辑传送给客户端使用。
服务依赖:一个服务器既可以是服务提供者,对外提供服务,也可以是消费者,需要别的服务提供者提供的服务。服务器之间提供服务和消费服务的关系可以称为服务依赖。
拓扑结构图:把实体抽象成“点”,把连接实体的线路抽象成“线”,用图的形式来表示这些点与线之间关系的图形。
集群:是计算、存储和网络资源的集合。
命名空间:可以将一个物理的集群逻辑上划分成多个虚拟集群,每个集群可以称为一个命名空间。不同的命名空间里的资源是完全隔离的。
爬虫技术:通过一定的规则策略,自动抓取、下载资料,再按照某些规则算法对这些资料进行数据抽取、索引的技术。
Gitlab:是一个用于仓库管理系统的项目,是使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
MD5:即Message-Digest Algorithm,是一种密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
根据本申请实施例的一方面,提供了一种依赖关系拓扑图的绘制的方法实施例。
可选地,在本实施例中,上述依赖关系拓扑图的绘制方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。本申请实施例的依赖关系拓扑图的绘制方法可以由服务器103来执行,也可以由终端101来执行,还可以是由服务器103和终端101共同执行。其中,终端101执行本申请实施例的依赖关系拓扑图的绘制方法也可以是由安装在其上的客户端来执行。
图2是根据本申请实施例的一种可选的依赖关系拓扑图的绘制方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,从多个微服务的微服务代码文件中获取所述多个微服务之间的目标服务依赖关系,其中,所述目标服务依赖关系包括在目标集群目标命名空间下的服务依赖关系和在不同集群不同命名空间下的服务依赖关系;
步骤S204,从所述目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务;
步骤S206,根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图。
通过上述步骤S202至步骤S206,基于服务的初始化代码文件来汇总服务节点依赖,突破集群和命名空间的限制,既可以查询特定集群特定命名空间下的服务依赖,也可以查询不同集群不同命名空间下的服务依赖,从而实现了提高微服务间依赖关系拓扑图的绘制灵活性的技术效果,进而解决了相关技术中微服务间依赖关系拓扑图的绘制灵活性较低的技术问题。
在步骤S202提供的技术方案中,微服务是一种架构模式,将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通,每个服务都围绕着具体业务进行构建,通过各种网络传输协议把应用的逻辑传送给客户端使用。
可选地,在本实施例中,应用程序的微服务间存在服务依赖关系,一个服务器既可以是服务提供者,对外提供服务,也可以是消费者,需要别的服务提供者提供的服务。
可选地,在本实施例中,从服务的初始化代码文件中获取服务依赖关系,能够突破集群和命名空间的限制,既可以获取到特定集群特定命名空间(即目标集群目标命名空间)下的服务依赖,也可以查询不同集群不同命名空间下的服务依赖,给软件测试工程师提供准确的测试参考。
可选地,在本实施例中,目标集群目标命名空间可以但不限于是预先指定的集群和命名空间。
在一个可选的实施方式中,图3是根据本申请可选的实施方式的从微服务代码文件中获取到的服务依赖关系的示意图,如图3所示,可以使用列表的形式来记录目标服务依赖关系。列表中可以通过id来为服务依赖关系进行标识编号,每个服务依赖关系中记录了依赖的微服务(source)、被依赖的微服务(target)、集群(product)和命名空间等。
在步骤S204提供的技术方案中,具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务可以但不限于以键值对的形式进行存储。
例如:键为存储的集群,值为对应的微服务;键为命名空间,值为对应的微服务;键为依赖服务,值为被依赖服务。
在步骤S206提供的技术方案中,依赖关系拓扑图可以但不限于是拓扑结构图的形式,拓扑结构图把实体抽象成“点”,把连接实体的线路抽象成“线”,用图的形式来表示这些点与线之间关系。依赖关系拓扑图把微服务抽象成“点”,把依赖关系的线路抽象成“线”,用图的形式来表示这些微服务之间依赖关系。
在一个可选的实施方式中,图4是根据本申请可选的实施方式的依赖关系拓扑图的示意图,如图4所示,以圆形图表示每个微服务个体,用箭头表示有依赖关系的微服务,比如A指向B,则表示A依赖B;A和B相互指向,则表示A和B相互依赖,另外,每个微服务上连接的箭头的总数量可以表示依赖权重,箭头越多,表示该微服务的依赖关系越复杂。该依赖关系拓扑图的绘制过程可以但不限于为:从多个微服务的微服务代码文件中获取如图3所示的目标服务依赖关系,从目标服务依赖关系中按照集群统计微服务得到具有对应关系的集群和微服务,按照命名空间统计微服务得到具有对应关系的命名空间和微服务,以及按照依赖服务统计被依赖服务得到具有对应关系的依赖服务和被依赖服务,根据上述对应关系绘制如图4所示的依赖关系拓扑图。
在本可选的实施方式中,依赖权重可以用于表示一个微服务与其他微服务间具有的依赖关系的复杂度,比如:如图4所示,微服务driving-accident-insurance的依赖权重为12,微服务driving-accident-tools的依赖权重为2,微服务driving-accident-api的依赖权重为3,微服务driving-accident-activity的依赖权重为6,微服务policy-service的依赖权重为2,微服务message-api-v2的依赖权重为1,微服务di-doorgod的依赖权重为2。依赖权重越高表示该微服务的依赖关系越复杂。
在本可选的实施方式中,测试人员可以根据依赖权重来对需要显示的依赖关系拓扑图进行自定义,从而根据需求来显示或者测试微服务,比如:可以根据测试人员对依赖权重数值的选择或者对依赖权重范围的选择来显示部分的微服务,测试人员可以选择显示依赖权重为3的微服务对应的依赖关系拓扑图,显示界面上会将依赖权重不为3的微服务对应的部分进行隐藏。也可以选择显示依赖权重高于5的微服务对应的依赖关系拓扑图,显示界面上会将依赖权重不足5的微服务对应的部分进行隐藏。
作为一种可选的实施例,从多个微服务的微服务代码文件中获取所述多个微服务之间的目标服务依赖关系包括:
S11,获取所述多个微服务的所述微服务代码文件;
S12,从所述微服务代码文件中识别所述多个微服务中每个微服务的初始化信息;
S13,从所述初始化信息中提取所述目标服务依赖关系。
可选地,在本实施例中,微服务代码文件可以但不限于存放在Gitlab中。
可选地,在本实施例中,初始化信息可以但不限于包括:服务运行的依赖包,服务初始化关联的微服务。如果识别成功,则从初始化信息中提取目标服务依赖关系,如果识别失败,则识别重试,重试10次后仍然失败,则返回报错提示。
作为一种可选的实施例,获取所述多个微服务的所述微服务代码文件包括:
S21,接收爬虫任务传输的加密文件,其中,所述爬虫任务用于爬取所述微服务代码文件并对爬取到的所述微服务代码文件进行加密得到所述加密文件;
S22,对所述加密文件进行解密,得到所述微服务代码文件。
可选地,在本实施例中,可以但不限于通过爬虫任务爬取微服务代码文件。爬虫任务通过一定的规则策略,自动抓取、下载资料,再按照某些规则算法对这些资料进行数据抽取、索引等操作。比如:爬虫任务首先筛选出微服务相关的Gitlab仓库地址,并作去重处理,再根据仓库地址向仓库发起http请求来请求下载微服务的代码文件,最后根据仓库地址的响应下载微服务的代码文件。
可选地,在本实施例中,爬虫任务对爬取到的所述微服务代码文件进行加密的方式可以但不限于包括MD5。
在一个可选的实施方式中,图5是根据本申请可选的实施方式的爬取微服务的代码文件的示意图,如图5所示,爬取微服务的代码文件的流程包括以下过程:设置定时爬虫任务。通过爬虫任务爬取微服务Gitlab的代码文件,如果文件存在,则用MD5加密代码文件,如果文件不存在,则爬取失败。使用http协议传输加密后的代码文件,同时新启动一个监听函数,监听文件传输情况。如果监听进程获取到receive消息,则表示传输成功,结束爬取微服务代码文件流程,如果获取到fail消息,则表示传输失败,再次尝试传输,直到传输成功。
作为一种可选的实施例,所述初始化信息包括:每个微服务运行的依赖包和每个微服务初始化关联的微服务,其中,从所述初始化信息中提取所述目标服务依赖关系包括:
S31,根据所述每个微服务运行的依赖包区分每个微服务所在的集群和命名空间;
S32,根据所述每个微服务初始化关联的微服务确定微服务间的依赖关系;
S33,根据每个微服务所在的集群和命名空间,以及,微服务间的服务依赖关系,获取第一服务依赖关系和第二服务依赖关系作为所述目标服务依赖关系,其中,所述第一服务依赖关系为在目标集群目标命名空间下的服务依赖关系,所述第二服务依赖关系为在不同集群不同命名空间下的服务依赖关系。
可选地,在本实施例中,初始化信息可以但不限于包括:服务运行的依赖包,服务初始化关联的微服务,根据服务的依赖包可以区分集群和命名空间,根据服务初始化关联的微服务可以确定服务依赖关系,获取特定集群特定命名空间下的服务依赖关系,以及不同集群不同命名空间下的服务依赖关系。
在一个可选的实施方式中,图6是根据本申请可选的实施方式的汇总微服务依赖关系的示意图,如图6所示,汇总微服务依赖关系的流程包括以下过程:服务器接收代码文件并保存到本地。对代码文件进行MD5解密。识别微服务的初始化信息包括服务运行的依赖包,服务初始化关联的微服务,在微服务的代码文件中服务运行的依赖包和服务初始化关联的微服务可以具有固定的标签或者代码格式,可以但不限于通过匹配标签或者代码格式来识别服务运行的依赖包和服务初始化关联的微服务,如果识别成功,则查找预先定义的不同依赖包所属的集群和命名空间,根据服务的依赖包与集群和命名空间之间的所述关系来区分微服务的集群和命名空间,根据服务初始化关联的微服务确定服务依赖关系,获取特定集群特定命名空间下的服务依赖,获取不同集群不同命名空间下的服务依赖,如果识别失败,则识别重试,重试10次后仍然失败,则返回报错提示。微服务的信息按照集群、命名空间、依赖与被依赖关系存储到数据库中。
作为一种可选的实施例,从所述目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务包括:
S41,根据所述目标服务依赖关系将所述多个微服务按照集群进行分类得到所述具有对应关系的集群和微服务;
S42,根据所述目标服务依赖关系将所述多个微服务按照命名空间进行分类得到所述具有对应关系的命名空间和微服务;
S43,根据所述目标服务依赖关系将所述多个微服务按照依赖服务进行分类得到所述具有对应关系的依赖服务和被依赖服务。
可选地,在本实施例中,可以但不限于按照集群、命名空间和依赖服务等维度对多个微服务进行分类,分别记录具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务。
可选地,在本实施例中,可以但不限于以键值对的形式存储集群和对应的微服务、命名空间和对应的微服务以及微服务间的依赖与被依赖。
作为一种可选的实施例,根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图包括:
S51,根据具有对应关系的集群和微服务,以及具有对应关系的命名空间和微服务,绘制每个集群每个命名空间下微服务的初始拓扑图;
S52,根据具有对应关系的依赖服务和被依赖服务在所述初始拓扑图上使用预设的记号标记微服务间的依赖关系,得到所述依赖关系拓扑图,其中,所述预设的记号用于从被依赖服务指向依赖服务。
可选地,在本实施例中,绘制各个集群各个命名空间下的依赖关系拓扑图。首先根据具有对应关系的集群和微服务,以及具有对应关系的命名空间和微服务,绘制初始拓扑图,再在初始拓补图上标记微服务间的依赖关系。
可选地,在本实施例中,预设的记号可以但不限于包括箭头,箭头可以由依赖服务执行被依赖服务。
可选地,在本实施例中,各个集群、命名空间和微服务的维度下的微服务依赖关系拓扑图都已经根据存储的键值对绘制好了保存起来,后续可以根据软件测试工程师的选择来找对应的图进行展示。
在一个可选的实施方式中,图7是根据本申请可选的实施方式的绘制微服务的拓扑结构图的示意图,如图7所示,绘制微服务的拓扑结构图的流程包括以下过程:接收到成功存储数据库消息通知后,服务器会删除本次保存在本地的代码文件,为下次接收代码文件做准备。通知前端更新服务拓扑结构图,如果通知前端成功,前端会从数据库读取服务依赖关系信息,如果通知失败,则通知重试,重试10次后仍然失败,则返回报错提示。前端从数据库读取服务依赖关系信息,如果成功读取,以键值对的形式存储集群和对应的微服务、命名空间和对应的微服务以及微服务间的依赖与被依赖,如果读取失败,则重新读取,重试10次后仍然失败,则保持不更新服务依赖关系拓扑图,保持现有的服务依赖关系拓扑图。绘制微服务依赖关系拓扑图时,按照集群、命名空间和微服务三个维度分页展示,即每个服务依赖关系拓扑图用一个页面来展示,每个页面用下拉框形式罗列出当前的集群、命名空间和微服务。后续可以根据测试工程师的选择展示微服务依赖关系。
作为一种可选的实施例,在根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图之后,还包括:
S61,获取第一筛选信息,其中,所述第一筛选信息用于对服务信息进行筛选,其中,所述服务信息至少包括以下之一:集群,命名空间,微服务;
S62,从所述多个微服务对应的依赖关系拓扑图中获取所述第一筛选信息对应的目标依赖关系拓扑图;
S63,展示所述目标依赖关系拓扑图。
可选地,在本实施例中,可以但不限于提供服务信息(集群、命名空间和微服务等)的下拉框来对需要展示的目标依赖关系拓扑图进行筛选,前端根据软件测试工程师对下拉框的操作来生成第一筛选信息,从预先绘制好的依赖关系拓扑图中获取第一筛选信息对应的目标依赖关系拓扑图,预先绘制好的依赖关系拓扑图中包括根据集群、命名空间和微服务的各种筛选可能绘制的依赖关系拓扑图,并记录下各种筛选可能与各个依赖关系拓扑图之间的对应关系,从而能够根据第一筛选信息所指示的筛选可能获取到其对应的目标依赖关系拓扑图,并展示目标依赖关系拓扑图。
作为一种可选的实施例,在展示所述目标依赖关系拓扑图之后,还包括:
S71,获取第二筛选信息,其中,所述第二筛选信息用于对所述目标依赖关系拓扑图上展示的初始依赖关系进行筛选,得到目标依赖关系;
S72,响应所述第二筛选信息将所述目标依赖关系拓扑图替换为展示所述目标依赖关系的依赖关系拓扑图;
S73,获取所述目标依赖关系对应的测试场景;
S74,执行所述测试场景对所述目标依赖关系进行测试,得到测试结果。
可选地,在本实施例中,软件测试工程师进行微服务测试时,根据集群、命名空间和微服务的三个维度,确定本次测试的微服务重点,可以通过第二筛选信息剔除目前无依赖关系的微服务,移除无依赖关系的微服务的测试场景,筛选出同集群同命名空间依赖复杂的微服务和不同集群不同命名空间依赖复杂的微服务,根据微服务依赖关系,定制单个服务依赖和多个依赖的测试场景,并执行测试场景进行测试,得到测试结果。
在一个可选的实施方式中,图8是根据本申请可选的实施方式的测试微服务间依赖关系的示意图,如图8所示,测试场景可以但不限于以表格的形式列出测试前提、测试内容、测试步骤和期望结果等测试信息。依据表格中的测试信息执行测试场景,得到测试报告形式的测试结果。
本申请还提供了一种可选实施例,该可选实施例提供了一种依赖关系拓扑图的绘制过程,并可以根据绘制的依赖关系拓扑图对微服务间的依赖关系进行测试。图9是根据本申请可选实施例的依赖关系拓扑图的绘制过程的示意图,如图9所示,该绘制过程包括以下流程:通过爬虫定时爬取微服务存放在Gitlab的代码文件,对爬取到的代码文件进行MD5加密,传输代码文件到服务器。服务器接收到加密文件,对加密文件进行MD5解密得到代码文件,汇总和存储微服务的依赖关系到数据库中,存储成功后删除本地代码文件。利用WEB前端页面,读取数据库中的服务依赖关系绘制拓补结构图。
前端页面可以根据不同的产品线或指定的服务展示服务拓扑结构图,通过箭头指向展示服务间依赖关系与被依赖关系,箭头的数量展示服务间的依赖权重关系,每次微服务代码更新都会更新微服务的依赖关系,软件测试工程师可以根据依赖关系的权重情况编写测试方案,聚焦权重较大的微服务,把握微服务测试重点。
通过上述过程,可以有效支撑软件测试工程师进行微服务的节点的测试,根据微服务的依赖关系确定测试重点,编写测试方案,可以提高软件测试工作的准确性,提高软件测试工作的效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述依赖关系拓扑图的绘制方法的依赖关系拓扑图的绘制装置。图10是根据本申请实施例的一种可选的依赖关系拓扑图的绘制装置的示意图,如图10所示,该装置可以包括:
第一获取模块1002,用于从多个微服务的微服务代码文件中获取所述多个微服务之间的目标服务依赖关系,其中,所述目标服务依赖关系包括在目标集群目标命名空间下的服务依赖关系和在不同集群不同命名空间下的服务依赖关系;
第二获取模块1004,用于从所述目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务;
绘制模块1006,用于根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图。
需要说明的是,该实施例中的第一获取模块1002可以用于执行本申请实施例中的步骤S202,该实施例中的第二获取模块1004可以用于执行本申请实施例中的步骤S204,该实施例中的绘制模块1006可以用于执行本申请实施例中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,基于服务的初始化代码文件来汇总服务节点依赖,突破集群和命名空间的限制,既可以查询特定集群特定命名空间下的服务依赖,也可以查询不同集群不同命名空间下的服务依赖,从而实现了提高微服务间依赖关系拓扑图的绘制灵活性的技术效果,进而解决了相关技术中微服务间依赖关系拓扑图的绘制灵活性较低的技术问题。
作为一种可选的实施例,所述第一获取模块包括:
获取单元,用于获取所述多个微服务的所述微服务代码文件;
识别单元,用于从所述微服务代码文件中识别所述多个微服务中每个微服务的初始化信息;
提取单元,用于从所述初始化信息中提取所述目标服务依赖关系。
作为一种可选的实施例,所述获取单元用于:
接收爬虫任务传输的加密文件,其中,所述爬虫任务用于爬取所述微服务代码文件并对爬取到的所述微服务代码文件进行加密得到所述加密文件;
对所述加密文件进行解密,得到所述微服务代码文件。
作为一种可选的实施例,所述初始化信息包括:每个微服务运行的依赖包和每个微服务初始化关联的微服务,其中,所述提取单元用于:
根据所述每个微服务运行的依赖包区分每个微服务所在的集群和命名空间;
根据所述每个微服务初始化关联的微服务确定微服务间的依赖关系;
根据每个微服务所在的集群和命名空间,以及,微服务间的服务依赖关系,获取第一服务依赖关系和第二服务依赖关系作为所述目标服务依赖关系,其中,所述第一服务依赖关系为在目标集群目标命名空间下的服务依赖关系,所述第二服务依赖关系为在不同集群不同命名空间下的服务依赖关系。
作为一种可选的实施例,所述第二获取模块包括:
第一分类单元,用于根据所述目标服务依赖关系将所述多个微服务按照集群进行分类得到所述具有对应关系的集群和微服务;
第二分类单元,用于根据所述目标服务依赖关系将所述多个微服务按照命名空间进行分类得到所述具有对应关系的命名空间和微服务;
第三分类单元,用于根据所述目标服务依赖关系将所述多个微服务按照依赖服务进行分类得到所述具有对应关系的依赖服务和被依赖服务。
作为一种可选的实施例,所述绘制模块包括:
绘制单元,用于根据具有对应关系的集群和微服务,以及具有对应关系的命名空间和微服务,绘制每个集群每个命名空间下微服务的初始拓扑图;
标记单元,用于根据具有对应关系的依赖服务和被依赖服务在所述初始拓扑图上使用预设的记号标记微服务间的依赖关系,得到所述依赖关系拓扑图,其中,所述预设的记号用于从被依赖服务指向依赖服务。
作为一种可选的实施例,所述装置还包括:
第三获取模块,用于在根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图之后,获取第一筛选信息,其中,所述第一筛选信息用于对服务信息进行筛选,其中,所述服务信息至少包括以下之一:集群,命名空间,微服务;
第四获取模块,用于从所述多个微服务对应的依赖关系拓扑图中获取所述第一筛选信息对应的目标依赖关系拓扑图;
展示模块,用于展示所述目标依赖关系拓扑图。
作为一种可选的实施例,所述装置还包括:
第五获取模块,用于在展示所述目标依赖关系拓扑图之后,获取第二筛选信息,其中,所述第二筛选信息用于对所述目标依赖关系拓扑图上展示的初始依赖关系进行筛选,得到目标依赖关系;
替换模块,用于响应所述第二筛选信息将所述目标依赖关系拓扑图替换为展示所述目标依赖关系的依赖关系拓扑图;
第六获取模块,用于获取所述目标依赖关系对应的测试场景;
执行模块,用于执行所述测试场景对所述目标依赖关系进行测试,得到测试结果。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述依赖关系拓扑图的绘制方法的服务器或终端。
图11是根据本申请实施例的一种终端的结构框图,如图11所示,该终端可以包括:一个或多个(图中仅示出一个)处理器1101、存储器1103、以及传输装置1105,如图11所示,该终端还可以包括输入输出设备1107。
其中,存储器1103可用于存储软件程序以及模块,如本申请实施例中的依赖关系拓扑图的绘制方法和装置对应的程序指令/模块,处理器1101通过运行存储在存储器1103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的依赖关系拓扑图的绘制方法。存储器1103可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1103可进一步包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1105用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1105包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1105为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器1103用于存储应用程序。
处理器1101可以通过传输装置1105调用存储器1103存储的应用程序,以执行下述步骤:
从多个微服务的微服务代码文件中获取所述多个微服务之间的目标服务依赖关系,其中,所述目标服务依赖关系包括在目标集群目标命名空间下的服务依赖关系和在不同集群不同命名空间下的服务依赖关系;
从所述目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务;
根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图。
采用本申请实施例,提供了一种依赖关系拓扑图的绘制的方案。基于服务的初始化代码文件来汇总服务节点依赖,突破集群和命名空间的限制,既可以查询特定集群特定命名空间下的服务依赖,也可以查询不同集群不同命名空间下的服务依赖,从而实现了提高微服务间依赖关系拓扑图的绘制灵活性的技术效果,进而解决了相关技术中微服务间依赖关系拓扑图的绘制灵活性较低的技术问题。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图11所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,终端还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行依赖关系拓扑图的绘制方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
从多个微服务的微服务代码文件中获取所述多个微服务之间的目标服务依赖关系,其中,所述目标服务依赖关系包括在目标集群目标命名空间下的服务依赖关系和在不同集群不同命名空间下的服务依赖关系;
从所述目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务;
根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (9)
1.一种依赖关系拓扑图的绘制方法,其特征在于,包括:
从多个微服务的微服务代码文件中获取所述多个微服务之间的目标服务依赖关系,其中,所述目标服务依赖关系包括在目标集群目标命名空间下的服务依赖关系和在不同集群不同命名空间下的服务依赖关系,微服务是一种架构模式,将单一应用程序划分成的服务,每个服务运行在独立的进程中,服务与服务间采用通信机制互相沟通,每个服务都围绕着对应业务进行构建,通过各种网络传输协议把应用的逻辑传送给客户端使用;
从所述目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务;
根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图;
获取第一筛选信息,其中,所述第一筛选信息用于对服务信息进行筛选,其中,所述服务信息包括以下至少之一:集群,命名空间,微服务;
从所述多个微服务对应的依赖关系拓扑图中获取所述第一筛选信息对应的目标依赖关系拓扑图;
展示所述目标依赖关系拓扑图;
获取第二筛选信息,其中,所述第二筛选信息用于对所述目标依赖关系拓扑图上展示的初始依赖关系进行筛选,通过所述第二筛选信息剔除无依赖关系的微服务,移除无依赖关系的微服务的测试场景,筛选出同集群同命名空间依赖复杂的微服务和不同集群不同命名空间依赖复杂的微服务,得到目标依赖关系;
响应所述第二筛选信息将所述目标依赖关系拓扑图替换为展示所述目标依赖关系的依赖关系拓扑图;
获取所述目标依赖关系对应的测试场景;
执行所述测试场景对所述目标依赖关系进行测试,得到测试结果。
2.根据权利要求1所述的方法,其特征在于,从多个微服务的微服务代码文件中获取所述多个微服务之间的目标服务依赖关系包括:
获取所述多个微服务的所述微服务代码文件;
从所述微服务代码文件中识别所述多个微服务中每个微服务的初始化信息;
从所述初始化信息中提取所述目标服务依赖关系。
3.根据权利要求2所述的方法,其特征在于,获取所述多个微服务的所述微服务代码文件包括:
接收爬虫任务传输的加密文件,其中,所述爬虫任务用于爬取所述微服务代码文件并对爬取到的所述微服务代码文件进行加密得到所述加密文件;
对所述加密文件进行解密,得到所述微服务代码文件。
4.根据权利要求2所述的方法,其特征在于,所述初始化信息包括:每个微服务运行的依赖包和每个微服务初始化关联的微服务,其中,从所述初始化信息中提取所述目标服务依赖关系包括:
根据所述每个微服务运行的依赖包区分每个微服务所在的集群和命名空间;
根据所述每个微服务初始化关联的微服务确定微服务间的依赖关系;
根据每个微服务所在的集群和命名空间,以及,微服务间的服务依赖关系,获取第一服务依赖关系和第二服务依赖关系作为所述目标服务依赖关系,其中,所述第一服务依赖关系为在目标集群目标命名空间下的服务依赖关系,所述第二服务依赖关系为在不同集群不同命名空间下的服务依赖关系。
5.根据权利要求1所述的方法,其特征在于,从所述目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务包括:
根据所述目标服务依赖关系将所述多个微服务按照集群进行分类得到所述具有对应关系的集群和微服务;
根据所述目标服务依赖关系将所述多个微服务按照命名空间进行分类得到所述具有对应关系的命名空间和微服务;
根据所述目标服务依赖关系将所述多个微服务按照依赖服务进行分类得到所述具有对应关系的依赖服务和被依赖服务。
6.根据权利要求1所述的方法,其特征在于,根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图包括:
根据具有对应关系的集群和微服务,以及具有对应关系的命名空间和微服务,绘制每个集群每个命名空间下微服务的初始拓扑图;
根据具有对应关系的依赖服务和被依赖服务在所述初始拓扑图上使用预设的记号标记微服务间的依赖关系,得到所述依赖关系拓扑图,其中,所述预设的记号用于从被依赖服务指向依赖服务。
7.一种依赖关系拓扑图的绘制装置,其特征在于,包括:
第一获取模块,用于从多个微服务的微服务代码文件中获取所述多个微服务之间的目标服务依赖关系,其中,所述目标服务依赖关系包括在目标集群目标命名空间下的服务依赖关系和在不同集群不同命名空间下的服务依赖关系,微服务是一种架构模式,将单一应用程序划分成的服务,每个服务运行在独立的进程中,服务与服务间采用通信机制互相沟通,每个服务都围绕着对应业务进行构建,通过各种网络传输协议把应用的逻辑传送给客户端使用;
第二获取模块,用于从所述目标服务依赖关系中获取具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务;
绘制模块,用于根据具有对应关系的集群和微服务,具有对应关系的命名空间和微服务,以及具有对应关系的依赖服务和被依赖服务绘制所述多个微服务对应的依赖关系拓扑图;
第三获取模块,用于获取第一筛选信息,其中,所述第一筛选信息用于对服务信息进行筛选,其中,所述服务信息至少包括以下之一:集群,命名空间,微服务;
第四获取模块,用于从所述多个微服务对应的依赖关系拓扑图中获取所述第一筛选信息对应的目标依赖关系拓扑图;
展示模块,用于展示所述目标依赖关系拓扑图;
第五获取模块,用于获取第二筛选信息,其中,所述第二筛选信息用于对所述目标依赖关系拓扑图上展示的初始依赖关系进行筛选,通过所述第二筛选信息剔除无依赖关系的微服务,移除无依赖关系的微服务的测试场景,筛选出同集群同命名空间依赖复杂的微服务和不同集群不同命名空间依赖复杂的微服务,得到目标依赖关系;
替换模块,用于响应所述第二筛选信息将所述目标依赖关系拓扑图替换为展示所述目标依赖关系的依赖关系拓扑图;
第六获取模块,用于获取所述目标依赖关系对应的测试场景;
执行模块,用于执行所述测试场景对所述目标依赖关系进行测试,得到测试结果。
8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至6任一项中所述的方法。
9.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至6任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010477669.5A CN111831548B (zh) | 2020-05-29 | 2020-05-29 | 一种依赖关系拓扑图的绘制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010477669.5A CN111831548B (zh) | 2020-05-29 | 2020-05-29 | 一种依赖关系拓扑图的绘制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111831548A CN111831548A (zh) | 2020-10-27 |
CN111831548B true CN111831548B (zh) | 2024-04-05 |
Family
ID=72914081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010477669.5A Active CN111831548B (zh) | 2020-05-29 | 2020-05-29 | 一种依赖关系拓扑图的绘制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831548B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416306A (zh) * | 2020-11-23 | 2021-02-26 | 平安普惠企业管理有限公司 | 多应用依赖树生成方法、装置、电子设备及计算机介质 |
CN112615743B (zh) * | 2020-12-18 | 2022-09-16 | 南京云柜网络科技有限公司 | 拓扑图绘制方法及装置 |
WO2022141340A1 (zh) * | 2020-12-31 | 2022-07-07 | 山石网科通信技术股份有限公司 | 确定应用服务的依赖关系的方法及装置、处理器 |
CN112783720B (zh) * | 2021-01-05 | 2023-05-19 | 广州品唯软件有限公司 | 拓扑结构图生成方法、装置、计算机设备和展示系统 |
CN112819577A (zh) * | 2021-01-28 | 2021-05-18 | 长沙市到家悠享网络科技有限公司 | 依赖关系可视化方法、装置、设备和存储介质 |
CN112905848A (zh) * | 2021-02-10 | 2021-06-04 | 北京有竹居网络技术有限公司 | 信息查询方法、装置、电子设备、存储介质及程序产品 |
CN113014674B (zh) * | 2021-04-08 | 2022-08-30 | 北京百度网讯科技有限公司 | 服务依赖关系图的绘制方法及装置 |
CN113364632B (zh) * | 2021-06-16 | 2022-07-01 | 中移(杭州)信息技术有限公司 | 业务系统架构图生成方法、设备、存储介质及装置 |
CN113590361A (zh) * | 2021-08-04 | 2021-11-02 | 中科曙光国际信息产业有限公司 | 虚拟进程拓扑方法、装置、计算机设备和存储介质 |
CN115729553A (zh) * | 2021-08-30 | 2023-03-03 | 中兴通讯股份有限公司 | 确定服务间依赖关系的方法及装置 |
CN114398115A (zh) * | 2021-12-03 | 2022-04-26 | 光控特斯联(重庆)信息技术有限公司 | 可视化流水线生成方法和装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9323644B1 (en) * | 2015-09-30 | 2016-04-26 | Semmle Limited | Query-based software dependency analysis |
CN108614707A (zh) * | 2018-04-27 | 2018-10-02 | 深圳市腾讯网络信息技术有限公司 | 静态代码检查方法、装置、存储介质和计算机设备 |
CN108628918A (zh) * | 2017-09-29 | 2018-10-09 | 南京途牛科技有限公司 | 系统部署与依赖关系自动绘制系统及方法 |
US10198250B1 (en) * | 2018-01-04 | 2019-02-05 | Accenture Global Solutions Limited | Partitioning based migration of systems to container and microservice based platforms |
CN109672662A (zh) * | 2018-10-11 | 2019-04-23 | 中山大学 | 一种微服务环境中服务依赖关系构建方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7904892B2 (en) * | 2006-01-06 | 2011-03-08 | Northrop Grumman Corporation | Systems and methods for identifying and displaying dependencies |
-
2020
- 2020-05-29 CN CN202010477669.5A patent/CN111831548B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9323644B1 (en) * | 2015-09-30 | 2016-04-26 | Semmle Limited | Query-based software dependency analysis |
CN108628918A (zh) * | 2017-09-29 | 2018-10-09 | 南京途牛科技有限公司 | 系统部署与依赖关系自动绘制系统及方法 |
US10198250B1 (en) * | 2018-01-04 | 2019-02-05 | Accenture Global Solutions Limited | Partitioning based migration of systems to container and microservice based platforms |
CN108614707A (zh) * | 2018-04-27 | 2018-10-02 | 深圳市腾讯网络信息技术有限公司 | 静态代码检查方法、装置、存储介质和计算机设备 |
CN109672662A (zh) * | 2018-10-11 | 2019-04-23 | 中山大学 | 一种微服务环境中服务依赖关系构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111831548A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111831548B (zh) | 一种依赖关系拓扑图的绘制方法和装置 | |
CN108289034A (zh) | 一种故障发现方法和装置 | |
CN110932918B (zh) | 日志数据采集方法、装置及存储介质 | |
WO2021072742A1 (en) | Assessing an impact of an upgrade to computer software | |
CN114745295A (zh) | 数据采集方法、装置、设备和可读存储介质 | |
CN111984735A (zh) | 一种数据归档方法、装置、电子设备和存储介质 | |
CN113553310A (zh) | 数据的采集方法及装置、存储介质、电子设备 | |
CN111353136B (zh) | 一种操作请求的处理方法和装置 | |
CN110198227B (zh) | 日志文件的处理方法、装置、存储介质及电子装置 | |
US11153183B2 (en) | Compacted messaging for application performance management system | |
US11599396B2 (en) | Resegmenting chunks of data based on source type to facilitate load balancing | |
US20150088958A1 (en) | Information Processing System and Distributed Processing Method | |
CN112559124A (zh) | 一种模型管理系统以及目标操作指令的处理方法和装置 | |
US10848371B2 (en) | User interface for an application performance management system | |
CN112579406A (zh) | 一种日志调用链生成方法和装置 | |
CN106161403A (zh) | 应用程序复原方法、装置以及系统 | |
CN113486025A (zh) | 数据存储方法、数据查询方法及装置 | |
CN108021443B (zh) | 事件处理方法和装置 | |
CN108874499A (zh) | 软件评估方法及装置 | |
CN111176871B (zh) | 目标应用的处理方法和装置、存储介质及电子装置 | |
CN116028444B (zh) | 文件指纹生成方法、装置、系统、电子设备及存储介质 | |
CN116781585A (zh) | 网络信息处理方法和装置、存储介质及电子设备 | |
CN116795544A (zh) | Hadoop资源感知方法和装置、电子设备和存储介质 | |
CN117632624A (zh) | 一种数据处理的方法及相关装置 | |
CN116346326A (zh) | 一种网络设备固件指纹模型自动化生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |