一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用拓扑的处理方法、装置、电子设备、存储介质及产品与流程

2022-06-16 01:24:38 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,具体而言,本技术涉及一种应用拓扑的处理方法、装置、电子设备、存储介质及产品。


背景技术:

2.应用拓扑用以反映应用内多个服务之间的调用关系。目前,在应用拓扑的处理过程中需从各应用中调用上亿调用链数据,该数据处理的过程繁琐复杂,使得无法及时得到响应,且影响了应用拓扑数据的处理准确度。


技术实现要素:

3.本技术实施例提供了一种应用拓扑的处理方法、装置、电子设备、存储介质及产品,实现及时处理大量的调用链数据,并提高了数据处理的准确度。
4.根据本技术实施例的一个方面,提供了一种应用拓扑的处理方法,该方法包括:
5.获取至少一个应用服务器发送的调用链数据流,并从所述调用链数据流中确定拓扑字段数据;
6.按所述拓扑字段数据的时间戳,将所述拓扑字段数据分配到相应的时间窗口;
7.对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据;
8.根据所述应用状态数据,确定各所述应用服务器之间的应用拓扑。
9.在一个可能的实现方式中,所述对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据,包括:
10.确定所述时间窗口的延时;
11.确定时间戳在所述延时内的拓扑字段数据为延时数据;
12.基于所述延时数据重新对所述时间窗口内的拓扑字段数据进行预处理,以更新应用状态数据。
13.在一个可能的实现方式中,所述拓扑字段数据包括与被调用应用服务器相关的服务提供者数据以及与调用应用服务器相关的服务消费者数据中的至少一项;
14.所述对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据,包括:
15.按由同一被调用应用服务器与调用应用服务器构成的调用关系,将所述拓扑字段数据划分为多个数据组;
16.对各所述数据组内的拓扑字段数据进行统计,并基于各所述数据组的统计结果确定各所述应用服务器之间包括应用调用关系数据的应用状态数据。
17.在一个可能的实现方式中,所述对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据,还包括:
18.根据所述时间窗口内的拓扑字段数据,确定各应用服务器的操作次数及其相应的
调用结果和服务调用耗时,所述操作次数包括调用次数和/或被调用次数;
19.从所述操作次数中确定当所述调用结果为调用失败时对应的失败操作次数;
20.将每次操作的服务调用耗时与预设时间阈值进行比对,根据比对结果确定所述应用服务器的运行速度;
21.根据所述应用服务器的失败操作次数及运行速度,确定所述应用服务器包括应用健康数据的应用状态数据。
22.在一个可能的实现方式中,所述应用状态数据包括应用调用关系数据及应用健康数据;所述根据所述应用状态数据,确定各所述应用服务器之间的应用拓扑,包括:
23.获取应用拓扑展示条件,所述应用拓扑展示条件用以指示待展示的中心应用服务器、时间段及拓扑展示层级;
24.基于与所述时间段相应的时间窗口内的应用调用关系数据,查询与所述中心应用服务器对应的下一个拓扑层级的应用列表,所述应用列表用以指示当前拓扑层级的应用服务器与下一个拓扑层级的应用服务器之间的应用调用关系数据;
25.按所述拓扑展示层级依次遍历每个拓扑层级的应用列表,以确定待展示的应用服务器的应用调用关系数据;
26.筛选出与所确定的应用调用关系数据相应的应用健康数据,并对筛选出的应用健康数据进行计算,得到待展示的应用服务器之间的应用健康度;
27.根据所述应用调用关系数据及所述应用健康度,构建待展示的应用服务器之间的应用拓扑。
28.在一个可能的实现方式中,所述从所述调用链数据流中确定拓扑字段数据,包括:
29.对所述调用链数据流进行清洗;
30.从清洗后的调用链数据流中提取出与应用拓扑相关的拓扑字段数据。
31.根据本技术实施例的另一个方面,提供了一种应用拓扑的处理装置,该装置包括:
32.数据获取模块,用于获取至少一个应用服务器发送的调用链数据流,并从所述调用链数据流中确定拓扑字段数据;
33.数据分配模块,用于按所述拓扑字段数据的时间戳,将所述拓扑字段数据分配到相应的时间窗口;
34.预处理模块,用于对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据;
35.应用拓扑生成模块,用于根据所述应用状态数据,确定各所述应用服务器之间的应用拓扑。
36.根据本技术实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现上述实施例所述的应用拓扑的处理方法的步骤。
37.根据本技术实施例的再一个方面,提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现上述实施例所述的应用拓扑的处理方法的步骤。
38.根据本技术实施例的一个方面,提供了一种计算机程序产品,所述计算机程序被处理器执行时实现上述实施例所述的应用拓扑的处理方法的步骤。
39.本技术实施例提供的技术方案带来的有益效果是:
40.所述应用拓扑的处理方法,通过获取至少一个应用服务器发送的调用链数据流,并从所述调用链数据流中确定拓扑字段数据,按所述拓扑字段数据的时间戳,将所述拓扑字段数据分配到相应的时间窗口,继而对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据,从而根据所述应用状态数据,确定各所述应用服务器之间的应用拓扑,这样,将大量的拓扑字段数据划分为多个时间窗口,使得对每个时间窗口内的数据进行预处理,实现面对大量数据的及时响应,而且提高了数据处理的准确度。
附图说明
41.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
42.图1为本技术实施例提供的计算机系统架构示意图;
43.图2为本技术实施例提供的服务器的架构示意图;
44.图3为本技术实施例提供的一种应用拓扑的处理方法的流程示意图;
45.图4为本技术一个示例性实施例提供的时间窗口预处理过程的示意图;
46.图5为本技术实施例提供的应用拓扑生成的流程示意图;
47.图6为本技术实施例提供的应用拓扑图的示意图;
48.图7为本技术实施例提供的一种应用拓扑的处理装置的结构示意图;
49.图8为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
50.下面结合本技术中的附图描述本技术的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制。
51.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“a和/或b”可以实现为“a”,或者实现为“b”,或者实现为“a和b”。
52.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
53.图1为本技术实施例提供的计算机系统架构示意图,该计算机系统1包括终端20和服务器10。其中,终端20与服务器10之间通过通信网络连接,且终端20以及服务器10可以通过有线或无线通信方式进行直接或间接地连接,本技术对此不做限制。
54.终端20可以为安装有应用程序的任意终端设备,诸如智能手机、平板电脑、笔记本
电脑、台式计算机、智能可穿戴式设备等,本技术实施例并不对此进行限定。关于硬件结构,上述终端20包括显示屏、存储器、处理器及输入设备,但不限于此。示例性的,上述应用程序是多媒体平台的终端侧应用程序。作为举例,上述多媒体平台包括社交类应用平台、游戏类应用平台、生活类服务平台等,本技术对多媒体平台的类型不加以限定。
55.服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络、以及大数据和人工智能平台等基础云计算服务的云服务器。
56.服务器10上承载有多媒体平台,上述服务器10为终端20中开发且运行的应用程序提供后台服务。具体的,图2为本技术实施例提供的服务器的架构示意图,该服务器10包括至少一个应用服务器101及管理服务器102,所述管理服务器102与各应用服务器101之间通过通信网络连接。需要说明的是,一个应用程序通过多个服务的交互来实现,服务是指应用程序中的不同功能单元,不同的服务具有不同的业务逻辑,比如应用程序包括三个服务,分别为服务a、服务b和服务c,在执行该应用程序时,实现账户登录业务的调用链路为服务a调用服务b,服务b调用服务c,并以此形成调用链路。应用拓扑用于指示上述应用程序中各个服务之间的调用关系。因此,每个应用服务器101与各服务形成一一对应的映射关系,各应用服务器101中配置有用于运行各自服务的业务逻辑的代码程序,各个应用服务器101可以根据业务功能需求相互调用。管理服务器102被配置为运行代码程序以实现对多个应用服务器101的管理。
57.图3为本技术实施例提供的一种应用拓扑的处理方法的流程示意图。本技术实施例中提供了一种应用拓扑的处理方法用于图2所述的管理服务器为例进行说明,该方法包括步骤s301至s303。
58.s301、获取至少一个应用服务器发送的调用链数据流,并从所述调用链数据流中确定拓扑字段数据。
59.需要说明的是,由于一个应用程序具有多个服务,通过调用相关应用服务器来触发服务进行相应业务的业务处理。在一次业务调用的过程中,把所调用的服务之间的调用信息(如调用时间、业务接口、层次关系、调用结果等)打点到日志中,以使将所有的打点数据连接为一个树状链条以形成一个调用链。因此,管理服务器从至少一个应用服务器中获取调用链数据流,该调用链数据流为针对调用链的具有起点和终点的字节的数据序列。
60.可选的,通常通过设置应用探针或向相关应用服务器发送探测数据包,实现监控应用服务器以及采集相应的调用链数据流。由于需要从应用服务器中采集大量的调用链数据流,导致该调用链数据流处理的过程繁琐复杂,使得无法及时得到响应。本技术以调用链数据流作为基础数据,从中提取用于应用拓扑处理的拓扑字段数据,能够降低数据处理的复杂度,简化了处理流程。
61.其中,所述拓扑字段数据包括与被调用应用服务器相关的服务提供者数据、与调用应用服务器相关的服务消费者数据、调用结果、服务调用耗时及时间戳中的至少一项。
62.示例性的,拓扑字段数据显示为以下单元格式:{provide,consumer,flag,elasptime,logtime},其中,provide为服务提供者数据,具体为被调用应用服务器的相关数据,如被调用应用服务器的名称、地址;consumer为服务消费者数据,具体为调用应用服
务器的相关数据,如调用应用服务器的名称、地址;flag为调用结果,即调用成功或调用失败;elasptime为服务调用耗时;logtime为数据的时间戳,即数据发出时间。
63.在一些实施例中,所述从所述调用链数据流中确定拓扑字段数据,包括:
64.对所述调用链数据流进行清洗;
65.从清洗后的调用链数据流中提取出与应用拓扑相关的拓扑字段数据。
66.在本实施例中,通过对从多个应用服务器获取到的调用链数据流进行清洗,并提取出与应用拓扑相关的环节及关键字段,以形成拓扑字段数据,能够降低数据的复杂度,提高了数据的可用性,从而提高了后续数据处理的效率。
67.s302、按所述拓扑字段数据的时间戳,将所述拓扑字段数据分配到相应的时间窗口。
68.s303、对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据。
69.在本技术中,按照拓扑字段数据所携带的时间戳,将拓扑字段数据切分为多个时间窗口。其中,各个时间窗口设有处理时间区间,该处理时间区间的下界限为数据发生时间,该处理时间区间的上界限为数据处理时间,由此当出现时间戳超过该数据发生时间的拓扑字段数据时,创建相应的时间窗口,继而将时间戳在该处理时间区间内的拓扑字段数据分配到该时间窗口。进一步,在时间戳达到该数据处理时间时,触发对当前时间窗口内的拓扑字段数据进行计算。因此,本技术通过将大量的拓扑字段数据划分为多个时间窗口,并对每个时间窗口内的数据进行预处理,能够降低后续数据处理的复杂性,提高处理效率。
70.可选的,应用状态数据包括应用调用关系数据。具体的,在达到时间窗口的数据处理时间后,获取当前时间窗口内的拓扑字段数据,按照时间窗口内预定的调用关系处理规则对时间窗口内的拓扑字段数据进行处理。其中,该调用关系处理规则可以是按照由同一被调用应用服务器与调用应用服务器构成的调用关系进行数据归类,也可以是按照同一调用结果进行数据归类,本技术对此不做限定。
71.可选的,应用状态数据包括应用健康数据。具体的,在达到时间窗口的数据处理时间后,获取当前时间窗口内的拓扑字段数据,按照时间窗口内预定的应用健康度预统计规则对时间窗口内的拓扑字段数据进行处理。其中,该应用健康度预统计规则可以是按照被调用服务和/或调用服务的调用结果及服务调用耗时对服务调用执行情况进行分析,本技术对此不做限定。因此,通过对应用健康数据进行预处理,实现在展示应用调用关系数据的同时快速展示相关调用关系下应用服务的执行情况。
72.s304、根据所述应用状态数据,确定各所述应用服务器之间的应用拓扑。
73.在本技术中,通过对应用调用关系数据及应用健康数据进行预处理,实现在展示应用拓扑的同时展示相应调用关系下应用服务的执行情况。
74.本技术实施例提供的应用拓扑的处理方法,通过获取至少一个应用服务器发送的调用链数据流,并从所述调用链数据流中确定拓扑字段数据,按所述拓扑字段数据的时间戳,将所述拓扑字段数据分配到相应的时间窗口,继而对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据,从而根据所述应用状态数据,确定各所述应用服务器之间的应用拓扑,这样,将大量的拓扑字段数据划分为多个时间窗口,使得对每个时间窗口内的数据进行预处理,实现面对大量数据的及时响应,而且提高了
数据处理的准确度。
75.在一些实施例中,所述对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据,包括:
76.确定所述时间窗口的延时;
77.确定时间戳在所述延时内的拓扑字段数据为延时数据;
78.基于所述延时数据重新对所述时间窗口内的拓扑字段数据进行预处理,以更新应用状态数据。
79.在本实施例中,在达到时间窗口的数据处理时间时,触发对当前时间窗口内的拓扑字段数据进行计算,并保存当前的计算结果。通过设定时间窗口的延时,将时间戳在该延时内的拓扑字段数据划分到该时间窗口,并将时间戳在所述延时内的拓扑字段数据作为延时数据,基于该延时数据更新当前时间窗口内的拓扑字段数据,使得基于更新后的时间窗口的拓扑字段数据更新上述计算结果,以此更新应用状态数据。此外,丢弃时间戳超过该延时的拓扑字段数据。
80.示例性的,设定时间窗口的处理时间为30分钟,延时为3分钟,上一时间窗口的处理时间区间为11:30-12:00,将时间戳在11:30-12:00的拓扑字段数据写入该时间窗口。在12:00时,触发对时间窗口内的拓扑字段数据进行计算,并将计算结果保存到缓存中。若在12:00-12:03内还接收到拓扑字段信息(此时为延时数据),则基于该延时数据对所保存的计算结果重新计算,以更新该计算结果。
81.因此,本实施例通过设置时间窗口的延时,实现能够基于延时数据更新应用状态数据,提供了对延时数据的处理能力,提高了数据统计的准确度。
82.在一些实施例中,所述对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据,包括:
83.按由同一被调用应用服务器与调用应用服务器构成的调用关系,将所述拓扑字段数据划分为多个数据组;
84.对各所述数据组内的拓扑字段数据进行统计,并基于各所述数据组的统计结果确定各所述应用服务器之间包括应用调用关系数据的应用状态数据。
85.在本实施例中,按照同一调用关系对时间窗口内的拓扑字段数据进行数据归类。具体的,将具有由同一被调用应用服务器与调用应用服务器构成的调用关系的拓扑字段数据组织成一个数据组,由此将时间窗口内的拓扑字段数据划分为多个数据组,继而对各个数据组中的拓扑字段数据进行统计,以使获得初步处理的各应用服务器之间的应用调用关系数据。其中,数据组的内容包括服务提供者数据、服务消费者数据及该调用关系的发生次数,但不限于此。进一步,将预处理得到的应用调用关系数据存入elasticsearch集群,使得在后续计算过程中从该集群中调用相应数据。因此,本实施例通过将时间窗口内的拓扑字段数据进行分组处理,获得具有同一特定特征的应用调用关系数据,能够提高预处理的效率及准确度。
86.示例性的,参见图4为本技术一个示例性实施例提供的时间窗口预处理过程的示意图,以数据单元格式为{provide,consumer,flag,elasptime}的拓扑字段数据进行说明,若当前时间窗口内有10个拓扑字段数据,具体包括(a,b,true,1)、(a,b,true,4)、(a,b,false,7)、(a,c,true,10)、(a,c,true,15)、(a,c,true,8)、(b,d,true,10)、(b,d,false,
15)、(c,d,true,10)、(c,d,false,10)。其中,a为应用服务器a的名称,b为应用服务器b的名称,c为应用服务器c的名称,d为应用服务器d的名称,true表示为调用成功,false表示为调用失败。继而,获取与被调用应用服务器为应用服务器a,且调用服务器为应用服务器b的调用关系相关的拓扑字段数据,如(a,b,true,1)、(a,b,true,4)、(a,b,false,7),以组织成具有上述调用关系的数据组。继而,基于该数据组内的拓扑字段数据进行应用调用关系窗口计算,确定上述由被调用应用服务器为应用服务器a且调用服务器为应用服务器b组成的调用关系的发生次数为3次,从而应用服务器a与应用服务器b之间的应用调用关系数据表示为(a,b,3)。以此类推,将由被调用应用服务器为应用服务器a且调用服务器为应用服务器c构成的调用关系的拓扑字段数据组织成应用调用关系数据(a,c,3),将由被调用应用服务器为应用服务器b且调用服务器为应用服务器d构成的调用关系的拓扑字段数据组织成应用调用关系数据(b,d,2),将由被调用应用服务器为应用服务器c且调用服务器为应用服务器d构成的调用关系的拓扑字段数据组织成应用调用关系数据(c,d,2),这样对当前时间窗口内的拓扑字段数据进行计算,得到上述四个应用服务器之间的应用调用关系数据,具体表示为(a,b,3)、(a,c,3)、(b,d,2)、(c,d,2)。
87.在一些实施例中,所述对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据,还包括:
88.根据所述时间窗口内的拓扑字段数据,确定各应用服务器的操作次数及其相应的调用结果和服务调用耗时,所述操作次数包括调用次数和/或被调用次数;
89.从所述操作次数中确定当所述调用结果为调用失败时对应的失败操作次数;
90.将每次操作的服务调用耗时与预设时间阈值进行比对,根据比对结果确定所述应用服务器的运行速度;
91.根据所述应用服务器的失败操作次数及运行速度,确定所述应用服务器包括应用健康数据的应用状态数据。
92.在本实施例中,应用健康数据用以反映一段时间内应用服务的执行情况。具体的,获取时间窗口内的拓扑字段数据,以确定各应用服务器的操作次数及每次操作的操作情况,操作次数包括调用次数和/或被调用次数,操作情况包括调用情况和/或被调用情况,调用情况包括应用服务器在调用过程中所产生的调用结果和服务调用耗时,被调用情况包括应用服务器在被调用过程中所产生的调用结果和服务调用耗时。继而,基于应用服务器的操作次数确定调用结果为调用失败的失败操作次数。同时,将每次操作的服务调用耗时分别与多个预设时间阈值进行比对,以获得服务调用耗时落在各预设时间阈值的次数,由此确定应用服务器的运行速度。从而,根据应用服务器的操作次数、失败操作次数及运行速度等,确定应用服务器的应用健康数据。进一步,将预处理得到的应用健康数据存入elasticsearch集群,使得在后续计算过程中从该集群中调用相应数据。因此,通过同时对应用健康数据进行预处理,实现在展示应用调用关系数据的同时快速展示相关调用关系下应用服务的执行情况。
93.示例性的,请参见图4,若当前时间窗口内有10个拓扑字段数据,具体包括(a,b,true,1)、(a,b,true,4)、(a,b,false,7)、(a,c,true,10)、(a,c,true,15)、(a,c,true,8)、(b,d,true,10)、(b,d,false,15)、(c,d,true,10)、(c,d,false,10)。由此,针对应用服务器b,其调用次数为3,其中失败操作次数为1,服务调用耗时小于1秒的调用次数为1,服务调用
耗时大于等于3秒且小于5秒的调用次数为1,且服务调用耗时大于5秒的调用次数为1。同时,设定应用健康数据的数据单元格式为{x,pos1,pos2,pos3,pos4,pos5},其中,x为调用应用服务器的名称;pos1表示服务调用耗时小于1秒的调用次数;pos2表示服务调用耗时大于等于1秒且小于3秒的调用次数;pos3表示服务调用耗时大于等于3秒且小于5秒的调用次数;pos4表示服务调用耗时大于5秒的调用次数;pos5表示在调用结果为调用失败时对应的失败操作次数。因此,执行应用健康数据窗口计算,应用服务器b的应用健康数据表示为(b,1,0,1,1,1)。同理的,针对应用服务器c,其调用次数为3,其中失败操作次数为0,服务调用耗时大于5秒的调用次数为3,表示为(c,0,0,0,3,0)。针对应用服务器d,其调用次数为4,其中失败操作次数为2,服务调用耗时大于5秒的调用次数为4,表示为(d,0,0,0,4,2)。
94.在一些实施例中,所述应用状态数据包括应用调用关系数据及应用健康数据;所述根据所述应用状态数据,确定各所述应用服务器之间的应用拓扑,包括:
95.获取应用拓扑展示条件,所述应用拓扑展示条件用以指示待展示的中心应用服务器、时间段及拓扑展示层级;
96.基于与所述时间段相应的时间窗口内的应用调用关系数据,查询与所述中心应用服务器对应的下一个拓扑层级的应用列表,所述应用列表用以指示当前拓扑层级的应用服务器与下一个拓扑层级的应用服务器之间的应用调用关系数据;
97.按所述拓扑展示层级依次遍历每个拓扑层级的应用列表,以确定待展示的应用服务器的应用调用关系数据;
98.筛选出与所确定的应用调用关系数据相应的应用健康数据,并对筛选出的应用健康数据进行计算,得到待展示的应用服务器之间的应用健康度;
99.根据所述应用调用关系数据及所述应用健康度,构建待展示的应用服务器之间的应用拓扑。
100.在本实施例中,参见图5为本技术实施例提供的应用拓扑生成的流程示意图,在启动后,获取应用拓扑展示条件,应用拓扑展示条件包括待展示的中心应用服务器数据、时间段及需展示的拓扑展示层级,该中心应用服务器数据为中心应用服务器的名称、地址等。继而,确定该时间段对应的时间窗口,并获取该时间窗口中的拓扑字段数据及预处理得到的应用调用关系数据和应用健康数据。由此,依据该时间窗口内的应用调用关系数据,根据中心应用服务器的名称查询其下一个拓扑层级的应用列表,作为第一个拓扑层级的应用列表,该应用列表用于指示该中心应用服务器与其下一个拓扑层级的应用服务器之间的应用调用关系数据。遍历第一个拓扑层级的应用列表,并获取第一个拓扑层级的应用服务器数据。继而,判断当前遍历到的拓扑层级是否为该拓扑展示层级,即判断是否需要查询下一个拓扑层级的应用列表,若是,则重复上述步骤,根据第一个拓扑层级的应用服务器的名称查询其下一个拓扑层级的应用列表,作为第二个拓扑层级的应用列表,该应用列表用于指示该第一个拓扑层级的应用服务器与其下一个拓扑层级的应用服务器之间的应用调用关系数据。以此类推,直至当前遍历到的拓扑层级为该拓扑展示层级,汇总从第一个拓扑层级到拓扑展示层级间所获得的应用列表,以此确定待展示的应用服务器及各应用服务器的应用调用关系数据。
101.进一步,从该时间窗口内的应用健康数据中,筛选出与待展示的应用服务器的应用调用关系数据相关的应用健康数据,使得根据筛选出的应用健康数据进行应用健康度打
标。具体的,设定应用监控度规则,并依据该应用监控度规则确定各应用服务器的应用健康度。
102.示例性的,应用监控度规则包括正常服务(即服务调用耗时小于5秒)占比、服务调用异常占比及服务调用缓慢(即服务调用耗时超过5秒)占比。以中心应用服务器为应用服务器a进行说明,针对应用服务器b调用中心应用服务器a,依据上述示例性实施例中应用服务器b的应用健康数据(b,1,0,1,1,1),计算出正常服务占比为66%,服务调用异常占比为33%,以及服务调用缓慢占比为33%,即应用服务器b的应用健康度表示为{正常:66%,运行缓慢:33%,异常:33%}。针对应用服务器c调用中心应用服务器a,依据上述示例性实施例中应用服务器c的应用健康数据(c,0,0,0,3,0),计算出正常服务占比为0,服务调用异常占比为0,以及服务调用缓慢占比为100%,即应用服务器c的应用健康度表示为{正常:0%,运行缓慢:100%,异常:0%}。以及,针对应用服务器d分别调用应用服务器b应用服务器c,依据上述示例性实施例中应用服务器d的应用健康数据(d,0,0,0,4,2),计算出正常服务占比为0,服务调用异常占比为50%,以及服务调用缓慢占比为100%,即应用服务器d的应用健康度表示为{正常:0%,运行缓慢:100%,异常:50%}。
103.更进一步,根据待展示的应用服务器之间的应用调用关系数据及应用健康度,形成待展示的应用服务器之间的应用拓扑图,该应用拓扑图用以展示应用服务器之间的调用关系及应用服务的执行情况。示例性的,参见图6为本技术实施例提供的应用拓扑图的示意图,在上述示例性实施例的基础上,以中心应用服务器为应用服务器a进行说明,设定拓扑展示层级为二级,从指定时间窗口的数据中查询与应用服务器a对应的下一个拓扑层级的应用列表,即第一个拓扑层级的应用列表,该应用列表展示有应用服务器b调用应用服务器a且该调用关系的发生次数为3,以及应用服务器c调用应用服务器a且该调用关系的发生次数为3。同时,显示应用服务器b的应用健康度{正常:66%,运行缓慢:33%,异常:33%},以及应用服务器c的应用健康度{正常:0%,运行缓慢:100%,异常:0%}。进一步,查询与应用服务器b、应用服务器c对应的下一个拓扑层级的应用列表,即第二个拓扑层级的应用列表,该应用列表展示有应用服务器d调用应用服务器b且该调用关系的发生次数为2,以及应用服务器d调用应用服务器c且该调用关系的发生次数为2。同时,针对应用服务器d的上述调用情况,显示其应用健康度为{正常:0%,运行缓慢:100%,异常:50%}。
104.图7为本技术实施例提供的一种应用拓扑的处理装置的结构示意图,所述应用拓扑的处理装置400包括:
105.数据获取模块401,用于获取至少一个应用服务器发送的调用链数据流,并从所述调用链数据流中确定拓扑字段数据;
106.数据分配模块402,用于按所述拓扑字段数据的时间戳,将所述拓扑字段数据分配到相应的时间窗口;
107.预处理模块403,用于对各所述时间窗口内的拓扑字段数据进行预处理,得到各所述应用服务器之间的应用状态数据;
108.应用拓扑生成模块404,用于根据所述应用状态数据,确定各所述应用服务器之间的应用拓扑。
109.在一些实施例中,预处理模块403包括:
110.延时确定单元,用于确定所述时间窗口的延时;
111.延时数据获取单元,用于确定时间戳在所述延时内的拓扑字段数据为延时数据;
112.延时数据处理单元,用于基于所述延时数据重新对所述时间窗口内的拓扑字段数据进行预处理,以更新应用状态数据。
113.在一些实施例中,所述拓扑字段数据包括与被调用应用服务器相关的服务提供者数据以及与调用应用服务器相关的服务消费者数据中的至少一项;预处理模块403包括:
114.数据组划分单元,用于按由同一被调用应用服务器与调用应用服务器构成的调用关系,将所述拓扑字段数据划分为多个数据组;
115.分组统计单元,用于对各所述数据组内的拓扑字段数据进行统计,并基于各所述数据组的统计结果确定各所述应用服务器之间包括应用调用关系数据的应用状态数据。
116.在一些实施例中,预处理模块403包括:
117.操作情况获取单元,用于根据所述时间窗口内的拓扑字段数据,确定各应用服务器的操作次数及其相应的调用结果和服务调用耗时,所述操作次数包括调用次数和/或被调用次数;
118.失败操作数据获取单元,用于从所述操作次数中确定当所述调用结果为调用失败时对应的失败操作次数;
119.运行速度确定单元,用于将每次操作的服务调用耗时与预设时间阈值进行比对,根据比对结果确定所述应用服务器的运行速度;
120.应用健康数据确定单元,用于根据所述应用服务器的失败操作次数及运行速度,确定所述应用服务器包括应用健康数据的应用状态数据。
121.在一些实施例中,所述应用状态数据包括应用调用关系数据及应用健康数据;应用拓扑生成模块404包括:
122.应用拓扑展示条件获取单元,用于获取应用拓扑展示条件,所述应用拓扑展示条件用以指示待展示的中心应用服务器、时间段及拓扑展示层级;
123.应用列表查询单元,用于基于与所述时间段相应的时间窗口内的应用调用关系数据,查询与所述中心应用服务器对应的下一个拓扑层级的应用列表,所述应用列表用以指示当前拓扑层级的应用服务器与下一个拓扑层级的应用服务器之间的应用调用关系数据;
124.遍历单元,用于按所述拓扑展示层级依次遍历每个拓扑层级的应用列表,以确定待展示的应用服务器的应用调用关系数据;
125.应用健康度计算单元,用于筛选出与所确定的应用调用关系数据相应的应用健康数据,并对筛选出的应用健康数据进行计算,得到待展示的应用服务器之间的应用健康度;
126.应用拓扑构建单元,用于根据所述应用调用关系数据及所述应用健康度,构建待展示的应用服务器之间的应用拓扑。
127.在一些实施例中,数据获取模块401包括:
128.数据清洗单元,用于对所述调用链数据流进行清洗;
129.数据提取单元,用于从清洗后的调用链数据流中提取出与应用拓扑相关的拓扑字段数据。
130.本技术实施例的装置可执行本技术实施例所提供的方法,其实现原理相类似,本技术各实施例的装置中的各模块所执行的动作是与本技术各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,
此处不再赘述。
131.本技术实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现应用拓扑的处理方法的步骤,与相关技术相比可实现:将大量的拓扑字段数据划分为多个时间窗口,使得对每个时间窗口内的数据进行预处理,实现面对大量数据的及时响应,而且提高了数据处理的准确度。
132.在一个可选实施例中提供了一种电子设备,如图8所示,图8所示的电子设备500包括:处理器501和存储器503。其中,处理器501和存储器503相连,如通过总线502相连。可选地,电子设备500还可以包括收发器504,收发器504可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器504不限于一个,该电子设备500的结构并不构成对本技术实施例的限定。
133.处理器501可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器501也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
134.总线502可包括一通路,在上述组件之间传送信息。总线502可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线502可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
135.存储器503可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
136.存储器503用于存储执行本技术实施例的计算机程序,并由处理器501来控制执行。处理器501用于执行存储器503中存储的计算机程序,以实现前述方法实施例所示的步骤。
137.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
138.本技术实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
139.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能
够以除图示或文字描述以外的顺序实施。
140.应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本技术实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制。
141.以上所述仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思想的其他类似实施手段,同样属于本技术实施例的保护范畴。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献