首页> 中国专利> 拓扑关系查询方法、装置、电子设备和介质

拓扑关系查询方法、装置、电子设备和介质

摘要

本申请公开了一种拓扑关系查询方法、装置、电子设备和介质,涉及计算机技术领域。具体实现方案为:接收到拓扑查询请求时,根据拓扑查询请求中的查询条件,从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息;其中,微服务节点对信息包括具有调用关系的两个微服务节点的信息;根据读取的微服务节点对信息生成拓扑图表达数据;根据拓扑图表达数据绘制拓扑关系图并进行展现。本申请实施例通过从预先存储的微服务节点对集合中读取微服务节点对信息,从而生成拓扑图表达数据,最终根据拓扑图表达数据绘制拓扑关系,实现了无需实时汇总节点信息以及上下游关系,提高了查询性能,且无需建立数据实时处理集群,降低了资源开销的效果。

著录项

  • 公开/公告号CN113051446A

    专利类型发明专利

  • 公开/公告日2021-06-29

    原文格式PDF

  • 申请/专利权人 百度国际科技(深圳)有限公司;

    申请/专利号CN201911366612.1

  • 发明设计人 刘涛;庞超;李奇原;

    申请日2019-12-26

  • 分类号G06F16/9038(20190101);H04L29/08(20060101);

  • 代理机构11332 北京品源专利代理有限公司;

  • 代理人孟金喆

  • 地址 518057 广东省深圳市南山区高新中二道5号生产力大楼D单元三层301

  • 入库时间 2023-06-19 11:39:06

说明书

技术领域

本申请涉及计算机技术领域,具体涉及信息检索技术,尤其涉及一种拓扑关系查询方法、装置、电子设备和介质。

背景技术

目前很多业务应用都是在复杂且大规模分布式集群上实现的。业务应用构建在不同的JAVA微服务模块上,这些模块架构各异、应用数目庞大、模块请求量大并且调用链复杂多变。在实际业务中,用户需要查询这些微服务模块的拓扑调用关系,以分析流量来源和性能瓶颈。

现有拓扑调用关系查询方法主要包括两种:(1)通过实时汇总节点信息以及上下游关系,绘制出拓扑关系。(2)建立数据实时处理集群,用于实时针对产生的调用链的数据记录创建节点间的树形结构,并存入数据库。查询时实时汇总多个调用链从而绘制出拓扑关系。

上述第一种方法的查询性能极低,很难达到分钟级别返回查询结果,而第二种方法资源开销高,且汇总调用链的速度较慢,导致查询性能也不理想。

发明内容

本申请提供一种拓扑关系查询方法、装置、电子设备和介质,以提高查询拓扑关系的性能,以及降低查询拓扑关系的资源开销。

第一方面,本申请实施例提供了一种拓扑关系查询方法,所述方法包括:

接收到拓扑查询请求时,根据所述拓扑查询请求中的查询条件,从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息;其中,所述微服务节点对信息包括具有调用关系的两个微服务节点的信息;

根据读取的所述微服务节点对信息生成拓扑图表达数据;

根据所述拓扑图表达数据绘制拓扑关系图并进行展现。

上述申请中的一个实施例具有如下优点或有益效果:通过从预先存储的微服务节点对集合中读取微服务节点对信息,从而生成拓扑图表达数据,最终根据拓扑图表达数据绘制拓扑关系,实现了无需实时汇总节点信息以及上下游关系,提高了查询性能,且无需建立数据实时处理集群,降低了资源开销的效果。

可选的,所述查询条件包括时间条件信息、基础节点以及拓扑深度信息中的至少一个。

上述申请中的一个实施例具有如下优点或有益效果:通过将时间条件信息、基础节点以及拓扑深度信息中的至少一个作为查询条件,保证了根据查询条件可以从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息。

可选的,根据所述拓扑查询请求中的查询条件,从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息,包括:

根据所述时间条件信息确定查询时间粒度和查询时间范围,从数据库中读取与所述查询时间粒度和所述查询时间范围对应的至少一张数据库表;

根据所述基础节点和所述拓扑深度信息,从读取的各数据库表中查询与所述基础节点关联的各微服务节点对信息。

上述申请中的一个实施例具有如下优点或有益效果:通过根据时间条件信息包含的查询时间粒度和查询时间范围,读取对应的至少一张数据库表,并根据基础节点和拓扑深度信息,从读取数据表中查询得到微服务节点对信息,为后续根据微服务节点对信息生成拓扑图表达数据,奠定了数据基础。

可选的,根据读取的所述微服务节点对信息生成拓扑图表达数据,包括:

基于读取的各微服务节点对信息和所述拓扑查询请求中包含的拓扑构建维度信息,构建以所述基础节点为中心的左拓扑数据结构和右拓扑数据结构;

构建所述基础节点的外部依赖数据结构,所述外部依赖数据结构包括所述基础节点所调用的外部服务的数据;

基于所述左拓扑数据结构、所述右拓扑数据结构以及所述外部依赖数据结构,生成拓扑图表达数据。

上述申请中的一个实施例具有如下优点或有益效果:通过构建以基础节点为中心的左拓扑数据结构和右拓扑数据结构,以及构建基础节点的外部依赖数据结构,最终基于左拓扑数据结构、右拓扑数据结构以及外部依赖数据结构,生成拓扑图表达数据,使得绘制拓扑关系图所需的必要数据都生成完成,为后续根据拓扑图表达数据绘制拓扑关系图并进行展现,奠定了数据基础。

可选的,所述方法还包括:

在接收到指标数据查询请求时,根据所述指标数据查询请求中的查询条件,从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息;

从读取的至少一条微服务节点对信息中查询与所述指标数据查询请求中的基础节点关联,并且指标数据满足所述指标数据查询请求中的指标条件的各微服务节点对信息;

对查询出的各微服务节点对信息的指标数据进行汇总,并根据汇总结果生成查询结果。

上述申请中的一个实施例具有如下优点或有益效果:通过根据指标数据查询请求中的查询条件,从预先存储的微服务节点对的集合中读取微服务节点对信息,并从微服务节点对信息中查询与基础节点关联且指标数据满足指标条件的各微服务节点对信息,最终对查询出的各微服务节点对的指标数据进行汇总,得到指标数据查询结果,实现了对基础节点关联的微服务节点对的指标数据的查询的效果,满足了用户对于指标数据进行分析的需求。

可选的,所述指标数据包括HTTP流量、RPC流量和DB依赖流量中的至少一种。

上述申请中的一个实施例具有如下优点或有益效果:通过将HTTP流量、RPC流量和DB依赖流量中的至少一种作为指标数据,使得后续可以针对基础节点关联的各微服务节点对的HTTP流量、RPC流量和DB依赖流量中的至少一种进行查询。

可选的,所述方法还包括:

按照预设周期获取当前周期内产生的原始采集数据,所述原始采集数据包括在所述当前周期内产生的各调用链中的各微服务节点的节点结构数据;

通过对获取的原始采集数据中的相同节点进行指标汇总,获得所述当前周期内产生的微服务节点对信息,并将所述微服务节点对信息存入微服务节点对的集合中。

上述申请中的一个实施例具有如下优点或有益效果:通过按照预设周期获取原始采集数据,并对原始采集数据中相同节点进行指标汇总,获取微服务节点对信息,最终将获取的微服务节点对信息存入微服务节点对的集合中,完成了对微服务节点对信息的存储,使得后续接收到拓扑查询请求时,可以直接从存储的微服务节点对的集合中读取微服务节点对信息,进而实现拓扑关系的查询,实现了无需实时汇总节点信息以及上下游关系,提高了查询性能,且无需建立数据实时处理集群,降低了资源开销的效果。

可选的,将所述微服务节点对信息存入微服务节点对的集合中,包括:

基于所述微服务节点对信息创建对应不同时间粒度的各数据库表,每张数据库表中存储有对应时间粒度的微服务节点对信息。

上述申请中的一个实施例具有如下优点或有益效果:通过创建对应不同时间粒度的数据库表,为拓扑查询过程中根据查询时间粒度读取对应时间粒度数据库表,奠定了数据基础。

第二方面,本申请实施例还公开了一种拓扑关系查询装置,该装置包括:

微服务节点对信息读取模块,用于接收到拓扑查询请求时,根据所述拓扑查询请求中的查询条件,从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息;其中,所述微服务节点对信息包括具有调用关系的两个微服务节点的信息;

拓扑图表达数据生成模块,用于根据读取的所述微服务节点对信息生成拓扑图表达数据;

拓扑关系图绘制模块,用于根据所述拓扑图表达数据绘制拓扑关系图并进行展现。

第三方面,本申请实施例还公开了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任意实施例所述的拓扑关系查询方法。

第四方面,本申请实施例还公开了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请任意实施例所述的拓扑关系查询方法。

上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1A是根据本申请第一实施例的一种树形结构的示意图;

图1B是根据本申请第一实施例的一种拓扑关系图的示意图;

图1C是根据本申请第一实施例的一种拓扑关系统计数据的示意图;

图1D是根据本申请第一实施例的一种拓扑关系查询方法的流程示意图;

图1E是根据本申请第一实施例的一种调用链的示意图;

图2A是根据本申请第二实施例的一种拓扑关系查询方法的流程示意图;

图2B是根据本申请第二实施例的一种拓扑关系图的示意图;

图3是根据本申请第三实施例的一种拓扑关系查询装置的结构示意图;

图4是用来实现本申请实施例的拓扑关系查询方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

现有的两种拓扑关系查询方法包括:

(1)在接收到查询请求后,根据其中的查询条件从数据库中读取一定时间范围内的节点结构数据,并根据读取的节点结构数据创建节点间的树形结构,如图1A为一种树形结构的示意图,然后将各个树形结构中相同节点的被调用次数和平均耗时等数值进行聚合处理,最后基于聚合结果绘制出基础点相应拓扑调用关系进行展示,如图1B为一种拓扑关系图的示意图。当用户点击其中的一个箭头时,会展示更具体的统计数据,如图1C为一种拓扑关系统计数据的示意图。该拓扑关系查询方法查询性能极低,对于规模较大的调用链很难达到分钟级别返回查询结果。

(2)增加一个数据处理集群,用于实时针对产生的调用链的节点结构数据创建节点间的树形结构,并存入数据库。在接收到查询请求后,根据查询条件对一定时间范围内的树形结构进行聚合处理,并基于聚合结果绘制出相应拓扑调用关系进行展示。本方案的性能较第(1)种方案有所提高,但是需要前置一个数据处理集群,为了实时返回处理结果,此数据处理集群规模与调用链规模成正比,资源开销高,另外,实时汇总万级别调用链的性能也较低。

实施例一

图1D为本申请实施例一提供的一种拓扑关系查询方法的流程示意图。本实施例适用于查询微服务节点的拓扑调用关系的情况,可以由本申请实施例提供的拓扑关系查询装置来执行,该装置可以采用软件和/或硬件的方式实现。如图1所示,该方法可以包括:

S101、接收到拓扑查询请求时,根据所述拓扑查询请求中的查询条件,从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息;其中,所述微服务节点对信息包括具有调用关系的两个微服务节点的信息。

其中,微服务节点表示实现某种技术效果的方法,例如音乐播放、路线导航、转账汇款或者文字输入都属于微服务节点,而微服务节点配置于应用中,应用包括软件应用或者系统应用等,例如娱乐应用A配置有微服务节点“音乐播放”;地图应用B配置有微服务节点“路线导航”;金融应用C配置有微服务节点“转账汇款”;社交应用D配置有微服务节点“文字输入”。配置于不同应用的微服务节点之间,或配置于同一应用中的微服务节点之间,都可能存在调用关系,例如应用A的“路线导航”微服务节点,需要调用应用B的“GPS(GlobalPositioning System,全球定位系统)”微服务节点才能实现;又例如应用C的“付款”微服务节点,需要调用应用C的“身份验证”微服务节点才能实现。而微服务节点对信息则包括具有调用关系的两个微服务节点的信息,例如“微服务节点对A”包括了“微服务节点A”调用了“微服务节点B”的信息。拓扑查询本质上就是查询微服务节点之间的调用拓扑关系。

具体的,接收到携带有查询条件的拓扑查询请求后,从预先存储的微服务节点对的集合中,按照查询条件读取至少一条微服务节点对信息。

可选的,查询条件包括时间条件信息、基础节点以及拓扑深度信息中的至少一个。其中,时间条件信息包括查询时间粒度和查询时间范围;基础节点则体现了拓扑查询请求要查询拓扑关系的目标微服务节点,例如查询条件中基础节点为“微服务节点A”,则表示本次拓扑查询请求要查询“微服务节点A”与其他微服务节点之间的调用拓扑关系;拓扑深度信息表示拓扑查询请求要查询拓扑关系的层数,例如拓扑深度信息为“1”则表示本次拓扑查询请求要查询拓扑关系的层数为1层,比如“微服务节点 A”调用“微服务节点B”或者“微服务节点C”调用“微服务节点A”,均表示1层拓扑关系;例如拓扑深度信息为“2”则表示本次拓扑查询请求要查询拓扑关系的层数为2层,比如“微服务节点A”调用“微服务节点B”,而“微服务节点B”又调用“微服务节点C”,表示2层拓扑关系。

通过根据拓扑查询请求中的查询条件,从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息,为后续根据微服务节点对信息生成拓扑图表达数据奠定了数据基础。

S102、根据读取的所述微服务节点对信息生成拓扑图表达数据。

其中,拓扑图表达数据体现了各微服务节点的描述数据结构、各微服务节点对之间的描述数据结构以及各微服务节点之间的调用拓扑数据结构。

具体的,根据S101读取的各微服务节点对信息,构建各微服务节点之间的调用拓扑数据结构,以及对各微服务节点以及各微服务节点对的描述数据结构;根据调用拓扑数据结构以及描述数据结构生成拓扑图表达数据。其中,微服务节点对信息包括:源微服务节点标识、目的微服务节点标识、源应用标识、目的应用标识、源微服务节点名称、目的微服务节点名称、指标数据、调用次数、调用出错次数以及调用耗时。相应的,各微服务节点的描述数据可选的包括:微服务节点的标识、微服务节点的名称以及指标数据;各微服务节点对的描述数据可选的包括:源节点标识、目的节点标识、指标数据、调用次数、调用出错次数以及调用耗时。微服务节点对信息可以按照以下表格中的字段形式进行存储:

本实施例还提供了一种拓扑图表达数据的代码表达形式,如下:

通过根据读取的微服务节点对信息生成拓扑图表达数据,为后续根据拓扑图表达数据绘制拓扑关系图并进行展现,奠定了数据基础。

S103、根据所述拓扑图表达数据绘制拓扑关系图并进行展现。

具体的,将拓扑图表达数据中的调用拓扑数据以及描述数据,进行数据可视化,绘制各微服务节点的拓扑关系图,并将拓扑关系图进行展现,供发送拓扑查询请求的用户进行查看。

通过根据拓扑图表达数据绘制拓扑关系图并进行展现,使得发送拓扑查询请求的用户可以更直观且清晰查看到各微服务节点的拓扑关系图,完成拓扑查询操作。

本申请实施例提供的技术方案,通过从预先存储的微服务节点对集合中读取微服务节点对信息,从而生成拓扑图表达数据,最终根据拓扑图表达数据绘制拓扑关系,实现了无需实时汇总节点信息以及上下游关系,提高了查询性能,且无需建立数据实时处理集群,降低了资源开销的效果。

在上述实施例的基础上,所述方法还包括:

A、按照预设周期获取当前周期内产生的原始采集数据,所述原始采集数据包括在所述当前周期内产生的各调用链中的各微服务节点的节点结构数据。

其中,调用链指的是一个业务请求经过分布式系统的多个处理环节的完整处理路径,每个路径包括至少一个处理节点即微服务节点,图1E为一种调用链的示意图,其中100、101、102和103表示四个不同的微服务节点,104和105表示两个不同的应用,如图1E所示,100调用了101,101 分别调用了102和103,100和101属于应用104,102和103属于应用105。各微服务节点每产生一次调用关系后便会记录该次调用所关联的节点结构数据。节点结构数据存储在KV非关系型数据库当中。

微服务节点的节点结构数据包括节点结构数据采集时间、微服务节点标识、父微服务节点标识、所属应用标识、调用耗时、调用结果信息以及是否为所属应用的入口节点。

节点结构数据可以按照以下表格中的字段形式进行存储:

可选的,按照预设周期,例如一小时或一天等,获取当前周期内的各微服务节点的节点结构数据。

B、通过对获取的原始采集数据中的相同节点进行指标汇总,获得所述当前周期内产生的微服务节点对信息,并将所述微服务节点对信息存入微服务节点对的集合中。

具体的,根据原始采集数据中任一微服务节点标识以及其父微服务节点标识,对相同节点进行指标汇总,获得当前周期内产生的微服务节点对信息,并将微服务节点对信息存入微服务节点对的集合中。

可选的,将微服务节点对信息存入微服务节点对的集合中,包括:基于所述微服务节点对信息创建对应不同时间粒度的各数据库表,每张数据库表中存储有对应时间粒度的微服务节点对信息。其中,所述时间粒度包括分钟、小时、天中的至少一个。

示例性的,假设当前周期为0点到24点,时间粒度为小时,则将0 点到24点中,每一小时的微服务节点对信息分别存入24个数据库表中;假设当前周期为0点到3点,时间粒度为分钟和小时,则将0点到3点中,每一分钟的微服务节点对信息分别存入180个数据库表中,每一小时的微服务节点对信息分别存入3个数据库表中。

通过按照预设周期获取原始采集数据,并对原始采集数据中相同节点进行指标汇总,获取微服务节点对信息,最终将获取的微服务节点对信息存入微服务节点对的集合中,完成了对微服务节点对信息的存储,使得后续接收到拓扑查询请求时,可以直接从存储的微服务节点对的集合中读取微服务节点对信息,进而实现拓扑关系的查询,实现了无需实时汇总节点信息以及上下游关系,提高了查询性能,且无需建立数据实时处理集群,降低了资源开销的效果。

在上述实施例的基础上,所述方法还包括:

A、在接收到指标数据查询请求时,根据所述指标数据查询请求中的查询条件,从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息。

其中,指标数据查询请求中的查询条件包括查询时间粒度。查询时间粒度包括分钟、小时、天中的至少一个。

示例性的,假设查询条件的查询时间粒度为“小时”,则从数据库中读取与时间粒度“小时”对应的至少一张数据库表,并从得到的数据库表中查询得到至少一条微服务节点对信息。

B、从读取的至少一条微服务节点对信息中查询与所述指标数据查询请求中的基础节点关联,并且指标数据满足所述指标数据查询请求中的指标条件的各微服务节点对信息。

其中,指标数据查询请求中的指标条件可选的包括指标数据大于或等于指标数据门限值,或者指标数据小于指标数据门限值,指标条件还可以是对源应用标识或目的应用标识的限定,比如限定“目的应用标识=111”,且“源应用标识”与“目的应用标识”相等;又比如限定“目的应用标识=111”,且“目的应用标识”取反后与“源应用标识”相等指标数据包括 HTTP流量、RPC流量和DB依赖流量中的至少一种。

示例性的,假设基础节点为“微服务节点A”,指标数据为“HTTP 流量”,指标条件为指标数据大于或等于100GB,则从读取的至少一条微服务节点对信息中查询与“微服务节点A”关联的,并且“HTTP流量”大于或等于100GB的微服务节点对信息。

C、对查询出的各微服务节点对信息的指标数据进行汇总,并根据汇总结果生成查询结果。

具体的,将查询出的各微服务节点对信息的指标数据进行汇总,并将汇总结果进行可视化,生成指标数据表格,并将指标数据表格返回给发送指标数据查询请求的用户,供其查看。

通过根据指标数据查询请求中的查询条件,从预先存储的微服务节点对的集合中读取微服务节点对信息,并从微服务节点对信息中查询与基础节点关联且指标数据满足指标条件的各微服务节点对信息,最终对查询出的各微服务节点对的指标数据进行汇总,得到指标数据查询结果,实现了对基础节点关联的微服务节点对的指标数据的查询的效果,满足了用户对于指标数据进行分析的需求。

实施例二

图2A为本申请实施例二提供的一种拓扑关系查询方法的流程示意图。本实施例为上述实施例提供了一种具体实现方式,如图2所示,该方法可以包括:

S201、接收到拓扑查询请求时,根据查询条件中的时间条件信息确定查询时间粒度和查询时间范围,从数据库中读取与所述查询时间粒度和所述查询时间范围对应的至少一张数据库表。

其中,在数据库中,每张数据库表是根据不同时间粒度创建的,相应的,每张数据库表中存储有对应时间粒度的微服务节点对信息。

具体的,从数据库中读取与查询时间粒度和查询时间范围相匹配的至少一张数据库表。

示例性的,假设查询时间粒度为“小时”,查询时间范围为“0点~5 点”,则从数据库中读取时间为“0点~1点”、“1点~2点”、“2点~3 点”、“3点~4点”和“4点~5点”的数据库表。

S202、根据查询条件中的基础节点和拓扑深度信息,从读取的各数据库表中查询与所述基础节点关联的各微服务节点对信息。

示例性的,假设基础节点为“微服务节点A”,拓扑深度信息为“1”,则从读取的各数据库表中查询与基础节点直接关联的各微服务节点对信息,例如将“源微服务节点标识”和“目的微服务节点标识”分别为“微服务节点A”和“微服务节点B”的微服务节点对信息,作为一次查询结果;又例如将“源微服务节点标识”和“目的微服务节点标识”分别为“微服务节点C”和“微服务节点A”的微服务节点对信息,作为一次查询结果。

示例性的,假设基础节点为“微服务节点A”,拓扑深度信息为“2”,则从读取的各数据库表中查询与基础节点直接和间接关联的各微服务节点对信息,例如将“源微服务节点标识”和“目的微服务节点标识”分别为“微服务节点A”和“微服务节点B”的微服务节点对信息,和“源微服务节点标识”和“目的微服务节点标识”分别为“微服务节点B”和“微服务节点C”的微服务节点对信息,作为一次查询结果。

示例性的,假设基础节点为“微服务节点A”,拓扑深度信息为“3”,则从读取的各数据库表中查询与基础节点直接和间接关联的各微服务节点对信息,例如“源微服务节点标识”和“目的微服务节点标识”分别为“微服务节点A”和“微服务节点B”的微服务节点对信息,“源微服务节点标识”和“目的微服务节点标识”分别为“微服务节点B”和“微服务节点C”的微服务节点对信息,和,“源微服务节点标识”和“目的微服务节点标识”分别为“微服务节点C”和“微服务节点D”的微服务节点对信息,作为一次查询结果。

S203、基于读取的各微服务节点对信息和拓扑查询请求中包含的拓扑构建维度信息,构建以所述基础节点为中心的左拓扑数据结构和右拓扑数据结构。

其中,拓扑构建维度信息可选的包括“微服务节点维度”、“应用维度”以及“微服务节点和应用维度”。若拓扑构建维度信息为“微服务节点维度”,则左拓扑数据结构和右拓扑数据结构中只包括与基础节点具有调用关系的微服务节点;若拓扑构建维度信息为“应用维度”,则左拓扑数据结构和右拓扑数据结构中只包括与基础节点具有调用关系的应用;若拓扑构建维度信息为“微服务节点和应用维度”,则左拓扑数据结构和右拓扑数据结构中即包括与基础节点具有调用关系的微服务节点,又包括与基础节点具有调用关系的应用。

具体的,基于读取的各微服务节点对信息中的“源微服务节点标识”、“目的微服务节点标识”、“源应用标识”和“目的应用标识”,根据拓扑查询请求中包含的拓扑构建维度信息,构建以基础节点为中心的左拓扑数据结构和右拓扑数据结构,其中,左拓扑数据结构包括调用了基础节点的“微服务节点”和/或“应用”,右拓扑数据结构包括被基础节点调用的“微服务节点”和/或“应用”。

示例性的,假设拓扑构建维度信息为“微服务节点和应用维度”,基础节点为“微服务节点A”,读取的至少一条微服务节点对信息中“源微服务节点标识”和“目的微服务节点标识为”分别为“微服务节点B”和“微服务节点A”;“源应用标识”和“目的应用标识”分别为“应用B”和“应用A”,则将“微服务节点B”和“应用B”作为以“微服务节点 A”为中心的左拓扑数据结构。

示例性的,假设拓扑构建维度信息为“微服务节点和应用维度”,基础节点为“微服务节点A”,读取的至少一条微服务节点对信息中“源微服务节点标识”和“目的微服务节点标识为”分别为“微服务节点A”和“微服务节点C”;“源应用标识”和“目的应用标识”分别为“应用A”和“应用C”,则将“微服务节点C”和“应用C”作为以“微服务节点 A”为中心的右拓扑数据结构。

S204、构建所述基础节点的外部依赖数据结构,所述外部依赖数据结构包括所述基础节点所调用的外部服务的数据。

其中,基础节点所调用的外部服务的数据,表示基础节点调用的外部接口或者是外部功能等。

具体的,从调用链中获取基础节点所调用的外部服务的数据,并根据外部服务的数据构建所述基础节点的外部依赖数据结构。

S205、基于所述左拓扑数据结构、所述右拓扑数据结构以及所述外部依赖数据结构,生成拓扑图表达数据。

具体的,将以基础节点为中心的左拓扑数据结构、右拓扑数据结构以及基础节点的外部依赖数据结构,进行汇总并生成拓扑图表达数据。

S206、根据所述拓扑图表达数据绘制拓扑关系图并进行展现。

图2B为一种拓扑关系图的示意图,其中200表示基础节点,201、202 和203表示三个调用了基础节点200的微服务节点,204表示调用了基础节点200的应用,201、202、203和204构成了基础节点200的左拓扑数据结构205;206、207和208表示三个被基础节点200调用的微服务节点,209表示被基础节点200调用的应用,206、207、208和209构成了基础节点200的右拓扑数据结构210,211表示被基础节点200调用的外部服务的数据,即外部依赖数据结构。

本申请实施例提供的技术方案,通过根据查询时间粒度和查询时间范围从数据库中读取对应的至少一张数据库表,并根据基础节点和拓扑深度信息,查询与基础节点关联的各微服务节点对信息,进而基于各微服务节点对信息和拓扑构建维度信息,构建以基础节点为中心的左拓扑数据结构和右拓扑数据结构,并且构建基础节点的外部依赖数据结构,最终基于左拓扑数据结构、右拓扑数据结构以及外部依赖数据结构,生成拓扑图表达数据,并绘制拓扑关系图进行展现,实现了无需实时汇总节点信息以及上下游关系,提高了查询性能,且无需建立数据实时处理集群,降低了资源开销的效果。

实施例三

图3为本申请实施例三提供的一种拓扑关系查询装置30的结构示意图,可执行本申请任一实施例中所提供的一种拓扑关系查询方法,具备执行方法相应的功能模块和有益效果。如图3所示,该装置可以包括:

微服务节点对信息读取模块31,用于接收到拓扑查询请求时,根据所述拓扑查询请求中的查询条件,从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息;其中,所述微服务节点对信息包括具有调用关系的两个微服务节点的信息;

拓扑图表达数据生成模块32,用于根据读取的所述微服务节点对信息生成拓扑图表达数据;

拓扑关系图绘制模块33,用于根据所述拓扑图表达数据绘制拓扑关系图并进行展现。

在上述实施例的基础上,所述查询条件包括时间条件信息、基础节点以及拓扑深度信息中的至少一个。

在上述实施例的基础上,所述微服务节点对信息读取模块31,具体用于:

根据所述时间条件信息确定查询时间粒度和查询时间范围,从数据库中读取与所述查询时间粒度和所述查询时间范围对应的至少一张数据库表;

根据所述基础节点和所述拓扑深度信息,从读取的各数据库表中查询与所述基础节点关联的各微服务节点对信息。

在上述实施例的基础上,所述拓扑图表达数据生成模块32,具体用于:

基于读取的各微服务节点对信息和所述拓扑查询请求中包含的拓扑构建维度信息,构建以所述基础节点为中心的左拓扑数据结构和右拓扑数据结构;

构建所述基础节点的外部依赖数据结构,所述外部依赖数据结构包括所述基础节点所调用的外部服务的数据;

基于所述左拓扑数据结构、所述右拓扑数据结构以及所述外部依赖数据结构,生成拓扑图表达数据。

在上述实施例的基础上,所述装置还包括指标数据查询模块,具体用于:

在接收到指标数据查询请求时,根据所述指标数据查询请求中的查询条件,从预先存储的微服务节点对的集合中读取至少一条微服务节点对信息;

从读取的至少一条微服务节点对信息中查询与所述指标数据查询请求中的基础节点关联,并且指标数据满足所述指标数据查询请求中的指标条件的各微服务节点对信息;

对查询出的各微服务节点对信息的指标数据进行汇总,并根据汇总结果生成查询结果。

在上述实施例的基础上,所述指标数据包括HTTP流量、RPC流量和 DB依赖流量中的至少一种。

在上述实施例的基础上,所述装置还包括微服务节点对信息存储模块,具体用于:

按照预设周期获取当前周期内产生的原始采集数据,所述原始采集数据包括在所述当前周期内产生的各调用链中的各微服务节点的节点结构数据;

通过对获取的原始采集数据中的相同节点进行指标汇总,获得所述当前周期内产生的微服务节点对信息,并将所述微服务节点对信息存入微服务节点对的集合中。

在上述实施例的基础上,所述微服务节点对信息存储模块,具体还用于:

基于所述微服务节点对信息创建对应不同时间粒度的各数据库表,每张数据库表中存储有对应时间粒度的微服务节点对信息。

本申请实施例所提供的一种拓扑关系查询装置30,可执行本申请任一实施例所提供的一种拓扑关系查询方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请任一实施例所提供的一种拓扑关系查询方法。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图4所示,是根据本申请实施例的拓扑关系查询方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图4所示,该电子设备包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图4中以一个处理器401 为例。

存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的拓扑关系查询方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的拓扑关系查询方法。

存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的拓扑关系查询方法对应的程序指令/模块(例如,附图3所示的微服务节点对信息读取模块31、拓扑图表达数据生成模块32和拓扑关系图绘制模块33)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的拓扑关系查询方法。

存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据拓扑关系查询电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至拓扑关系查询的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

拓扑关系查询方法的电子设备还可以包括:输入装置403和输出装置 404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。

输入装置403可接收输入的数字或字符信息,以及产生与拓扑关系查询的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置404可以包括显示设备、辅助照明装置 (例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和 /或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入) 来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

根据本申请实施例的技术方案,通过从预先存储的微服务节点对集合中读取微服务节点对信息,从而生成拓扑图表达数据,最终根据拓扑图表达数据绘制拓扑关系,实现了无需实时汇总节点信息以及上下游关系,提高了查询性能,且无需建立数据实时处理集群,降低了资源开销的效果。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号