一种应用拓扑的动态感知方法、装置与流程



1.本技术涉及到微服务治理领域,具体而言,涉及一种应用拓扑的动态感知方法、装置。


背景技术:



2.在微服务架构中,随着微服务拆分的复杂度上升,应用架构的拓扑展示能力在微服务治理中显得格外重要,而传统应用拓扑能力均是基于全链路追踪的追踪(trace)数据实现的,这就意味着如果微服务应用没有发生流量调用,或者说微服务应用只发生了部分依赖关系的流量调用,那么就无法看到全局的,或者隐藏链路的应用拓扑关系。另外,基于trace数据,如果有较大的流量,那么需要对较大的trace数据进行存储有一定的成本。
3.因此,针对相关技术中存在的上述技术问题,尚未提出有效的解决方案。


技术实现要素:



4.本技术实施例提供了一种应用拓扑的动态感知方法、装置,以至少解决相关技术中基于trace数据实现微服务应用拓扑感知,如果微服务调用还未有流量产生,那么应用拓扑将会感知不到,或者只能感知部分链路的应用拓扑的问题。
5.根据本技术的一个方面,提供了一种应用拓扑的动态感知方法,包括:监听微服务架构中微服务应用的各连接的心跳响应消息,其中,所述心跳响应消息包括所述微服务应用的连接目标的元数据,所述元数据包括所述连接目标的地址信息;根据所述元数据获取所述微服务应用的局部应用拓扑描述信息,其中,所述局部应用拓扑描述信息用于指示所述微服务应用和所述连接目标的连接拓扑关系;将所述局部应用拓扑描述信息发送给预设节点,以供所述预设节点根据所述局部应用拓扑描述信息生成所述微服务架构的全局应用拓扑,其中,所述全局应用拓扑用于指示所述微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。
6.可选地,所述监听微服务架构中微服务应用的各连接的心跳响应消息包括:监听所述微服务应用与注册中心之间连接的心跳响应消息,以及,监听所述微服务应用与该微服务应用所依赖服务之间连接的心跳响应消息。
7.可选地,根据所述元数据获取所述微服务应用的局部应用拓扑描述信息包括:获取所述微服务应用对应的第一信息列表,其中,所述第一信息列表包括微服务应用和连接目标之间的连接关系;将所述元数据所包括的所述连接目标的地址信息和所述微服务应用的地址信息更新至所述第一信息列表,得到所述微服务应用的局部应用拓扑描述信息。
8.可选地,所述元数据还包括所述连接目标的属性信息、所述连接目标的应用信息。
9.可选地,根据所述元数据获取所述微服务应用的局部应用拓扑描述信息还包括:获取所述微服务应用对应的第二信息列表,其中,所述第二信息列表包括连接目标的属性信息、连接目标的应用信息;将所述元数据包括的所述连接目标的属性信息和所述连接目标的应用信息更新至所述第二信息列表,得到所述微服务应用的局部应用拓扑描述信息。
10.可选地,所述方法还包括:在所述微服务应用启动的过程中,建立所述各连接的心跳数据。
11.根据本技术的另一个方面,提供了一种应用拓扑的动态感知方法,包括:获取微服务架构中各微服务应用的局部应用拓扑描述信息,其中,所述局部应用拓扑描述信息由各微服务应用接收到的心跳响应消息确定,所述心跳响应消息中携带有所述微服务应用的连接目标的元数据,所述元数据包括所述连接目标的地址信息,所述局部应用拓扑描述信息用于指示所述微服务应用和所述连接目标的连接拓扑关系;将各所述微服务应用的局部应用拓扑描述信息聚合,获得所述微服务架构的全局应用拓扑,其中,所述全局应用拓扑用于指示所述微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。
12.根据本技术的再一个方面,提供了一种应用拓扑的动态感知装置,包括:监听模块,用于监听微服务架构中微服务应用的各连接的心跳响应消息,其中,所述心跳响应消息包括所述微服务应用的连接目标的元数据,所述元数据包括所述连接目标的地址信息;第一获取模块,用于根据所述元数据获取所述微服务应用的局部应用拓扑描述信息,其中,所述局部应用拓扑描述信息用于指示所述微服务应用和所述连接目标的连接拓扑关系;发送模块,用于将所述局部应用拓扑描述信息发送给预设节点,以供所述预设节点根据所述局部应用拓扑描述信息生成所述微服务架构的全局应用拓扑,其中,所述全局应用拓扑用于指示所述微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。
13.根据本技术的又一个方面,提供了一种应用拓扑的动态感知装置,包括:第二获取模块,用于获取微服务架构中各微服务应用的局部应用拓扑描述信息,其中,所述局部应用拓扑描述信息由各微服务应用接收到的心跳响应消息确定,所述心跳响应消息中携带有所述微服务应用的连接目标的元数据,所述元数据包括所述连接目标的地址信息,所述局部应用拓扑描述信息用于指示所述微服务应用和所述连接目标的连接拓扑关系;第三获取模块,用于将各所述微服务应用的局部应用拓扑描述信息聚合,获得所述微服务架构的全局应用拓扑,其中,所述全局应用拓扑用于指示所述微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。
14.根据本技术的另一个方面,还提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述的方法步骤。
15.根据本技术的另一个方面,还提供了一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现上述的方法步骤。
16.在本技术实施例中,监听微服务架构中微服务应用的各连接的心跳响应消息,其中,该心跳响应消息包括该微服务应用的连接目标的元数据,该元数据包括该连接目标的地址信息;根据该元数据获取该微服务应用的局部应用拓扑描述信息,其中,该局部应用拓扑描述信息用于指示该微服务应用和该连接目标的连接拓扑关系;将该局部应用拓扑描述信息发送给预设节点,以供该预设节点根据该局部应用拓扑描述信息生成该微服务架构的全局应用拓扑,其中,该全局应用拓扑用于指示该微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。也就是说,本技术实施例的微服务应用基于心跳响应消息中携带的信息获取局部应用拓扑描述信息,然后将该局部应用拓扑描述信息上报到预设节点进行聚合,生成全局应用拓扑,即使没有任何流量调用,也可以分析出完整的应用
拓扑信息,进而解决了相关技术中,基于trace数据实现微服务应用拓扑感知,如果微服务调用还未有流量产生,那么应用拓扑将会感知不到,或者只能感知部分链路的应用拓扑的问题,达到了提高应用拓扑感知效率的技术效果。
附图说明
17.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
18.图1是根据本技术实施例的一种应用拓扑的动态感知结构示意图;
19.图2是根据本技术实施例的一种应用拓扑的动态感知方法流程图;
20.图3是根据本技术实施例的一种应用拓扑的动态感知示意图;
21.图4是根据本技术实施例的另一种应用拓扑的动态感知方法流程图;
22.图5是根据本技术实施例的另一种应用拓扑的动态感知示意图;
23.图6是根据本技术实施例的又一种应用拓扑的动态感知示意图;
24.图7是根据本技术实施例的一种应用拓扑的动态感知装置结构示意图;
25.图8是根据本技术实施例的另一种应用拓扑的动态感知装置结构示意图。
具体实施方式
26.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
27.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
28.实施例一
29.本技术实施例主要是应用于微服务架构下,基于应用拓扑感知提出来的,其中应用拓扑反映了多个微服务应用之间的调用关系,微服务应用与注册中心之间的调用关系以及微服务应用与微服务应用所依赖的服务(例如,数据库、缓存、消息队列服务)之间的调用关系。如图1所示,该微服务架构包括注册中心,微服务应用1、微服务应用2、微服务应用3,数据库,缓存,消息队列服务。治理中心在进行应用的分析和治理时,就需要知道上述微服务架构中的调用关系,调用关系可以看作是图1中的各种连接关系,通过这些连接关系可以最终确定出微服务架构的拓扑。基于此,本实施例中提供了一种应用拓扑的动态感知方法,图2是根据本技术实施例的应用拓扑的动态感知方法的流程图,如图2所示,该方法包括如下步骤:
30.s202,监听微服务架构中微服务应用的各连接的心跳响应消息,其中,该心跳响应消息包括该微服务应用的连接目标的元数据,该元数据包括该连接目标的地址信息;
31.需要说明的是,上述地址信息可以是网际互连协议(internet protocol,简称为ip)地址。上述微服务架构是一类将单一应用程序作为由众多小型服务构成之套件加以开发的方式,其中各项服务都拥有自己的进程并利用轻量化机制实现通信。
32.另外,需要说明的是,上述连接在连接池中,连接池可以包括:调用连接池、注册中心连接池等。上述连接目标可以包括:微服务应用、注册中心、数据库、缓存、消息队列服务
等。上述s202可以通过java agent技术在微服务应用中注入心跳监听程序,通过该心跳监听程序监听微服务架构中微服务应用的各连接的心跳响应消息。
33.可选地,上述s202可以包括以下步骤:
34.s11,监听该微服务应用与注册中心之间连接的心跳响应消息,以及,
35.s12,监听该微服务应用与该微服务应用所依赖服务之间连接的心跳响应消息。
36.需要说明的是,上述微服务应用所依赖服务包括但并不限于:除该微服务应用之外的其它微服务应用、第三方组件(如缓存)、数据库等。
37.通过上述s11监听微服务应用与注册中心之间连接的心跳响应消息,可以进一步依据该心跳响应消息获取微服务应用与微服务应用之间、微服务应用与注册中心之间的局部应用拓扑描述信息,以及通过s12,监听该微服务应用与该微服务应用所依赖服务之间连接的心跳响应消息,可以进一步依据该心跳响应消息获取微服务应用与该微服务应用所依赖服务之间的局部应用拓扑描述信息。
38.s204,根据该元数据获取该微服务应用的局部应用拓扑描述信息,其中,该局部应用拓扑描述信息用于指示微服务应用和连接目标的连接拓扑关系;
39.上述s204可以通过java agent技术在微服务应用中注入心跳信息分析程序,通过该心跳信息分析程序获取该微服务应用的局部应用拓扑描述信息。
40.可选地,上述s204可以包括:
41.s21,获取该微服务应用对应的第一信息列表,其中,该第一信息列表包括微服务应用和连接目标之间的连接关系;
42.s22,将该元数据所包括的该连接目标的地址信息和该微服务应用的地址信息更新至该第一信息列表,得到该微服务应用的局部应用拓扑描述信息。
43.需要说明的是,每个微服务应用都对应一个信息列表,该信息列表包括微服务应用和连接目标之间的连接关系,例如,微服务应用a调用微服务应用b,那么上述第一信息列表就可以包括微服务应用a到微服务应用b的连接关系(a-b),又例如,微服务应用a调用微服务应用b,微服务应用b调用微服务应用c,那么上述第一信息列表就可以包括微服务应用a到微服务应用b的连接关系,微服务应用b到微服务应用c的连接关系(a-b-c)。
44.可选地,上述元数据还可以包括连接目标的属性信息、连接目标的应用信息。例如,假设连接目标是微服务应用,上述属性信息可以是微服务应用的类型,类型的名称等,在连接目标是注册中心时,上述应用信息可以是注册中心监听的服务,在连接目标是数据库时,上述应用信息是可以访问到的数据库表等,这样应用拓扑的信息更完整,可以进一步用户体验度。
45.在上述元数据包括连接目标的属性信息、连接目标的应用信息时,根据该元数据获取该微服务应用的局部应用拓扑描述信息还包括:
46.s23,获取该微服务应用对应的第二信息列表,其中,该第二信息列表包括连接目标的属性信息、连接目标的应用信息;
47.s24,将该元数据包括的该连接目标的属性信息和该连接目标的应用信息更新至该第二信息列表,得到该微服务应用的局部应用拓扑描述信息。
48.通过上述s21~s22以及s23~s24,,可以根据元数据获取微服务应用和连接目标的连接关系,并将该连接关系更新到与微服务应用对应的第一信息列表中,将连接目标的
属性信息、连接目标的应用信息更新到第二信息列表中,后端只需维护上述第一信息列表和第二信息列表这两张表,不用进行调用就可以分析拓扑关系,相比于相关技术中,只有产生调用的时候,才能分析出拓扑关系,而为了展示拓扑关系进行调用,就会导致需要存储大量的trace数据,存储成本增加,而本技术实施例与调用量无关,即使是数百个微服务应用极其复杂的拓扑关系,存储的成本几乎为0。
49.s206,将该局部应用拓扑描述信息发送给预设节点,以供该预设节点根据该局部应用拓扑描述信息生成该微服务架构的全局应用拓扑,其中,该全局应用拓扑用于指示该微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。
50.可选地,在本技术实施例中,上述预设节点具备聚合并生成全局应用拓扑功能(例如,应用拓扑生成程序),可以将多个微服务应用的局部应用拓扑描述信息进行聚合处理,进而得到微服务架构的全局应用拓扑。例如,以购物类的系统为例进行说明,如图3所示,该系统包括注册中心、生态云网关(spring cloud gateway,简称为scg)、购物车、交易中心、库存中心、数据库、缓存、消息队列服务。其中,生态云网关、购物车、交易中心、库存中心都可以是微服务应用。对于购物车来说,购物车通过各连接的心跳响应消息中携带的连接目标的地址信息,确定出购物车与注册中心存在连接关系1、购物车与交易中心存在连接关系2,以及购物车与数据库存在连接关系3,那个这3种连接关系就可以看作是购物车的局部应用拓扑描述信息a,依次类推,交易中心和库存中心也会得到对应的局部应用拓扑描述信息b、局部应用拓扑描述信息c,将局部应用拓扑描述信息a、局部应用拓扑描述信息b、局部应用拓扑描述信息c进行聚合,就可以得到图3所示的由所有连线构成的全局应用拓扑。
51.通过上述s202~s206,监听微服务架构中微服务应用的各连接的心跳响应消息,其中,所述心跳响应消息包括所述微服务应用的连接目标的元数据,所述元数据包括所述连接目标的地址信息;根据所述元数据获取所述微服务应用的局部应用拓扑描述信息,其中,所述局部应用拓扑描述信息用于指示所述微服务应用和所述连接目标的连接拓扑关系;将所述局部应用拓扑描述信息发送给预设节点,以供所述预设节点根据所述局部应用拓扑描述信息生成所述微服务架构的全局应用拓扑,其中,所述全局应用拓扑用于指示所述微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。也就是说,本技术实施例的微服务应用基于心跳响应消息中携带的信息获取局部应用拓扑描述信息,然后将该局部应用拓扑描述信息上报到预设节点进行聚合,生成全局应用拓扑,即使没有任何流量调用,也可以分析出完整的应用拓扑信息,进而解决了相关技术中,基于trace数据实现微服务应用拓扑感知,如果微服务调用还未有流量产生,那么应用拓扑将会感知不到,或者只能感知部分链路的应用拓扑的问题,达到了提高应用拓扑感知效率的技术效果。
52.在一个可选地实施方式中,上述方法还包括:
53.s41,在该微服务应用启动的过程中,建立所述各连接的心跳数据。
54.可选地,上述方法还可以包括:在微服务运行时,动态建立各连接的心跳数据。
55.通过上述s41,即使微服务应用没有发生任何调用,但是微服务应用启动的过程中就会提前将连接以及心跳建立,因此就算没有任何业务调用,也可以分析出完整的微服务应用拓扑信息。
56.在本实施例中还提供了一种应用拓扑的动态感知方法,图4是根据本技术实施例
的另一种应用拓扑的动态感知方法方法的流程图,如图4所示,该方法包括如下步骤:
57.s402,获取微服务架构中各微服务应用的局部应用拓扑描述信息,其中,该局部应用拓扑描述信息由各微服务应用接收到的心跳响应消息确定,该心跳响应消息中携带有该微服务应用的连接目标的元数据,该元数据包括该连接目标的地址信息,该局部应用拓扑描述信息用于指示该微服务应用和该连接目标的连接拓扑关系;
58.s404,将各该微服务应用的局部应用拓扑描述信息聚合,获得该微服务架构的全局应用拓扑,其中,该全局应用拓扑用于指示该微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。
59.通过上述s402~s404,获取各微服务应用上报的基于心跳响应消息确定的局部应用拓扑描述信息,然后将各微服务应用的局部应用拓扑描述信息聚合,获得该微服务架构的全局应用拓扑,即使没有任何流量调用,也可以分析出完整的应用拓扑信息,进而解决了相关技术中,基于trace数据实现微服务应用拓扑感知,如果微服务调用还未有流量产生,那么应用拓扑将会感知不到,或者只能感知部分链路的应用拓扑的问题,达到了提高应用拓扑感知效率。
60.下面结合具体示例,对本技术实施例进行举例描述。
61.示例1
62.在本示例1中主要是描述微服务应用与微服务应用之间的应用拓扑感知。
63.如图5所示,在每个微服务应用的框架中注入心跳监听程序以及心跳信息分析程序,心跳监听程序会监听服务框架中与注册中心的连接的心跳响应消息,该心跳响应消息包括包含且不限于注册中心的地址、注册中心中监听的服务、以及服务中的服务端地址等元数据信息等。心跳监听程序将上述元数据收集上来后会交给心跳信息分析程序,心跳信息分析程序会分析元数据信息并抽象出当前微服务应用涉及到的第一信息列表、第二信息列表等展示全局拓扑信息所需的局部应用拓扑描述信息。心跳信息分析程序将分析结果上报至后端全局的应用拓扑生成程序,应用拓扑生成程序会将一段时间内收集到的各个微服务应用上报的分析结果进行全局的聚合与展示。
64.示例2
65.在本示例2中主要是描述微服务应用与该微服务应用所依赖服务之间的应用拓扑感知。
66.如图6所示,微服务应用与微服务应用所需的依赖之间的拓扑关系是通过心跳监听程序监听连接池的连接的心跳来实现。心跳监听程序会收集各连接的心跳响应消息,该心跳响应消息包括目标连接的元数据(缓存的地址、数据库的地址、访问到的数据库表等更加丰富的元数据)。心跳监听程序将这些元数据信息收集上来后会交给心跳信息分析程序,心跳信息分析程序会分析元数据信息并抽象出当前微服务应用涉及到的第一信息列表、第二信息列表等展示全局拓扑信息所需的局部应用拓扑描述信息。心跳信息分析程序将分析结果上报至后端全局的应用拓扑生成程序。应用拓扑生成程序会将一段时间内收集到的各个微服务应用上报的分析结果进行全局的聚合与展示。
67.实施例二
68.基于上述实施例一的应用场景,在本实施例中提供了一种应用拓扑的动态感知装置,图7是根据本技术实施例的应用拓扑的动态感知装置的结构示意图,如图7所示,该装置
包括:
69.监听模块72,用于监听微服务架构中微服务应用的各连接的心跳响应消息,其中,该心跳响应消息包括该微服务应用的连接目标的元数据,该元数据包括该连接目标的地址信息;
70.需要说明的是,上述地址信息可以是网际互连协议(internet protocol,简称为ip)地址。上述微服务架构是一类将单一应用程序作为由众多小型服务构成之套件加以开发的方式,其中各项服务都拥有自己的进程并利用轻量化机制实现通信。
71.另外,需要说明的是,上述连接在连接池中,连接池可以包括:调用连接池、注册中心连接池等。上述连接目标可以包括:微服务应用、注册中心、数据库、缓存、消息队列服务等。上述监听模块72可以通过java agent技术在微服务应用中注入心跳监听程序,通过该心跳监听程序监听微服务架构中微服务应用的各连接的心跳响应消息。
72.可选地,上述监听模块72还用于监听该微服务应用与注册中心之间连接的心跳响应消息,以及,监听该微服务应用与该微服务应用所依赖服务之间连接的心跳响应消息。
73.需要说明的是,上述微服务应用所依赖服务包括但并不限于:除该微服务应用之外的其它微服务应用、第三方组件(如缓存)、数据库等。
74.通过上述监听模块72监听微服务应用与注册中心之间连接的心跳响应消息,可以进一步依据该心跳响应消息获取微服务应用与微服务应用之间、微服务应用与注册中心之间的局部应用拓扑描述信息,以及监听该微服务应用与该微服务应用所依赖服务之间连接的心跳响应消息,可以进一步依据该心跳响应消息获取微服务应用与该微服务应用所依赖服务之间的局部应用拓扑描述信息。
75.第一获取模块74,用于根据该元数据获取该微服务应用的局部应用拓扑描述信息,其中,该局部应用拓扑描述信息用于指示该微服务应用和该连接目标的连接拓扑关系;
76.上述第一获取模块74可以通过java agent技术在微服务应用中注入心跳信息分析程序,通过该心跳信息分析程序获取该微服务应用的局部应用拓扑描述信息。
77.可选地,上述第一获取模块74还用于获取该微服务应用对应的第一信息列表,其中,该第一信息列表包括微服务应用和连接目标之间的连接关系;将该元数据所包括的该连接目标的地址信息和该微服务应用的地址信息更新至该第一信息列表,得到该微服务应用的局部应用拓扑描述信息。
78.需要说明的是,每个微服务应用都对应一个信息列表,该信息列表包括微服务应用和连接目标之间的连接关系,例如,微服务应用a调用微服务应用b,那么上述第一信息列表就可以包括微服务应用a到微服务应用b的连接关系(a-b),又例如,微服务应用a调用微服务应用b,微服务应用b调用微服务应用c,那么上述第一信息列表就可以包括微服务应用a到微服务应用b的连接关系,微服务应用b到微服务应用c的连接关系(a-b-c)。
79.可选地,上述元数据还可以包括连接目标的属性信息、连接目标的应用信息。例如,假设连接目标是微服务应用,上述属性信息可以是微服务应用的类型,类型的名称等,在连接目标是注册中心时,上述应用信息可以是注册中心监听的服务,在连接目标是数据库时,上述应用信息是可以访问到的数据库表等,这样应用拓扑的信息更完整,可以进一步用户体验度。
80.在上述元数据包括连接目标的属性信息、连接目标的应用信息时,第一获取模块
74还用于获取该微服务应用对应的第二信息列表,其中,该第二信息列表包括连接目标的属性信息、连接目标的应用信息;将该元数据包括的该连接目标的属性信息和该连接目标的应用信息更新至该第二信息列表,得到该微服务应用的局部应用拓扑描述信息。
81.通过上述第一获取模块7,可以根据元数据获取微服务应用和连接目标的连接关系,并将该连接关系更新到与微服务应用对应的第一信息列表中,将连接目标的属性信息、连接目标的应用信息更新到第二信息列表中,后端只需维护上述第一信息列表和第二信息列表这两张表,不用进行调用就可以分析拓扑关系,相比于相关技术中,只有产生调用的时候,才能分析出拓扑关系,而为了展示拓扑关系进行调用,就会导致需要存储大量的trace数据,存储成本增加,而本技术实施例与调用量无关,即使是数百个微服务应用极其复杂的拓扑关系,存储的成本几乎为0。
82.发送模块76,用于将该局部应用拓扑描述信息发送给预设节点,以供该预设节点根据该局部应用拓扑描述信息生成该微服务架构的全局应用拓扑,其中,该全局应用拓扑用于指示该微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。
83.可选地,在本技术实施例中,上述预设节点具备聚合并生成全局应用拓扑功能(例如,应用拓扑生成程序),可以将多个微服务应用的局部应用拓扑描述信息进行聚合处理,进而得到微服务架构的全局应用拓扑。例如,以购物类的系统为例进行说明,如图3所示,该系统包括注册中心、生态云网关(spring cloud gateway,简称为scg)、购物车、交易中心、库存中心、数据库、缓存、消息队列服务。其中,生态云网关、购物车、交易中心、库存中心都可以是微服务应用。对于购物车来说,购物车通过各连接的心跳响应消息中携带的连接目标的地址信息,确定出购物车与注册中心存在连接关系1、购物车与交易中心存在连接关系2,以及购物车与数据库存在连接关系3,那个这3种连接关系就可以看作是购物车的局部应用拓扑描述信息a,依次类推,交易中心和库存中心也会得到对应的局部应用拓扑描述信息b、局部应用拓扑描述信息c,将局部应用拓扑描述信息a、局部应用拓扑描述信息b、局部应用拓扑描述信息c进行聚合,就可以得到图3所示的由所有连线构成的全局应用拓扑。
84.通过图7所示装置,监听微服务架构中微服务应用的各连接的心跳响应消息,其中,所述心跳响应消息包括所述微服务应用的连接目标的元数据,所述元数据包括所述连接目标的地址信息;根据所述元数据获取所述微服务应用的局部应用拓扑描述信息,其中,所述局部应用拓扑描述信息用于指示所述微服务应用和所述连接目标的连接拓扑关系;将所述局部应用拓扑描述信息发送给预设节点,以供所述预设节点根据所述局部应用拓扑描述信息生成所述微服务架构的全局应用拓扑,其中,所述全局应用拓扑用于指示所述微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。也就是说,本技术实施例的微服务应用基于心跳响应消息中携带的信息获取局部应用拓扑描述信息,然后将该局部应用拓扑描述信息上报到预设节点进行聚合,生成全局应用拓扑,即使没有任何流量调用,也可以分析出完整的应用拓扑信息,进而解决了相关技术中,基于trace数据实现微服务应用拓扑感知,如果微服务调用还未有流量产生,那么应用拓扑将会感知不到,或者只能感知部分链路的应用拓扑的问题,达到了提高应用拓扑感知效率的技术效果。
85.在一个可选地实施方式中,上述装置还用于在该微服务应用启动的过程中,建立所述各连接的心跳数据。
86.可选地,上述装置还用于在微服务运行时,动态建立各连接的心跳数据。
87.通过上述装置,即使微服务应用没有发生任何调用,但是微服务应用启动的过程中就会提前将连接以及心跳建立,因此就算没有任何业务调用,也可以分析出完整的微服务应用拓扑信息。
88.本实施例中还提供了一种应用拓扑的动态感知装置,图8是根据本技术实施例的另一种应用拓扑的动态感知装置的结构示意图,如图8所示,该装置包括:
89.第二获取模块82,用于获取微服务架构中各微服务应用的局部应用拓扑描述信息,其中,该局部应用拓扑描述信息由各微服务应用接收到的心跳响应消息确定,该心跳响应消息中携带有该微服务应用的连接目标的元数据,该元数据包括该连接目标的地址信息,该局部应用拓扑描述信息用于指示该微服务应用和该连接目标的连接拓扑关系;
90.第三获取模块84,用于将各该微服务应用的局部应用拓扑描述信息聚合,获得该微服务架构的全局应用拓扑,其中,该全局应用拓扑用于指示该微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。
91.通过图8所示装置,获取各微服务应用上报的基于心跳响应消息确定的局部应用拓扑描述信息,然后将各微服务应用的局部应用拓扑描述信息聚合,获得该微服务架构的全局应用拓扑,即使没有任何流量调用,也可以分析出完整的应用拓扑信息,进而解决了相关技术中,基于trace数据实现微服务应用拓扑感知,如果微服务调用还未有流量产生,那么应用拓扑将会感知不到,或者只能感知部分链路的应用拓扑的问题,达到了提高应用拓扑感知效率。
92.实施例三
93.本发明实施例还提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行上述任一项方法的步骤。
94.实施例四
95.本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,指令被处理器执行时实现上述任一项方法的步骤。
96.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
97.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
98.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
99.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
100.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-on ly memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
101.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术特征:


1.一种应用拓扑的动态感知方法,其特征在于,包括:监听微服务架构中微服务应用的各连接的心跳响应消息,其中,所述心跳响应消息包括所述微服务应用的连接目标的元数据,所述元数据包括所述连接目标的地址信息;根据所述元数据获取所述微服务应用的局部应用拓扑描述信息,其中,所述局部应用拓扑描述信息用于指示所述微服务应用和所述连接目标的连接拓扑关系;将所述局部应用拓扑描述信息发送给预设节点,以供所述预设节点根据所述局部应用拓扑描述信息生成所述微服务架构的全局应用拓扑,其中,所述全局应用拓扑用于指示所述微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。2.根据权利要求1所述的方法,其特征在于,所述监听微服务架构中微服务应用的各连接的心跳响应消息包括:监听所述微服务应用与注册中心之间连接的心跳响应消息,以及,监听所述微服务应用与该微服务应用所依赖服务之间连接的心跳响应消息。3.根据权利要求1所述的方法,其特征在于,根据所述元数据获取所述微服务应用的局部应用拓扑描述信息包括:获取所述微服务应用对应的第一信息列表,其中,所述第一信息列表包括微服务应用和连接目标之间的连接关系;将所述元数据所包括的所述连接目标的地址信息和所述微服务应用的地址信息更新至所述第一信息列表,得到所述微服务应用的局部应用拓扑描述信息。4.根据权利要求1所述的方法,其特征在于,所述元数据还包括所述连接目标的属性信息、所述连接目标的应用信息。5.根据权利要求4所述的方法,其特征在于,根据所述元数据获取所述微服务应用的局部应用拓扑描述信息还包括:获取所述微服务应用对应的第二信息列表,其中,所述第二信息列表包括连接目标的属性信息、连接目标的应用信息;将所述元数据包括的所述连接目标的属性信息和所述连接目标的应用信息更新至所述第二信息列表,得到所述微服务应用的局部应用拓扑描述信息。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述微服务应用启动的过程中,建立所述各连接的心跳数据。7.一种应用拓扑的动态感知方法,其特征在于,包括:获取微服务架构中各微服务应用的局部应用拓扑描述信息,其中,所述局部应用拓扑描述信息由各微服务应用接收到的心跳响应消息确定,所述心跳响应消息中携带有所述微服务应用的连接目标的元数据,所述元数据包括所述连接目标的地址信息,所述局部应用拓扑描述信息用于指示所述微服务应用和所述连接目标的连接拓扑关系;将各所述微服务应用的局部应用拓扑描述信息聚合,获得所述微服务架构的全局应用拓扑,其中,所述全局应用拓扑用于指示所述微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。8.一种应用拓扑的动态感知装置,其特征在于,包括:监听模块,用于监听微服务架构中微服务应用的各连接的心跳响应消息,其中,所述心跳响应消息包括所述微服务应用的连接目标的元数据,所述元数据包括所述连接目标的地
址信息;第一获取模块,用于根据所述元数据获取所述微服务应用的局部应用拓扑描述信息,其中,所述局部应用拓扑描述信息用于指示所述微服务应用和所述连接目标的连接拓扑关系;发送模块,用于将所述局部应用拓扑描述信息发送给预设节点,以供所述预设节点根据所述局部应用拓扑描述信息生成所述微服务架构的全局应用拓扑,其中,所述全局应用拓扑用于指示所述微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。9.一种应用拓扑的动态感知装置,其特征在于,包括:第二获取模块,用于获取微服务架构中各微服务应用的局部应用拓扑描述信息,其中,所述局部应用拓扑描述信息由各微服务应用接收到的心跳响应消息确定,所述心跳响应消息中携带有所述微服务应用的连接目标的元数据,所述元数据包括所述连接目标的地址信息,所述局部应用拓扑描述信息用于指示所述微服务应用和所述连接目标的连接拓扑关系;第三获取模块,用于将各所述微服务应用的局部应用拓扑描述信息聚合,获得所述微服务架构的全局应用拓扑,其中,所述全局应用拓扑用于指示所述微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。10.一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1至7任一项所述的方法步骤。11.一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1至7任一项所述的方法步骤。

技术总结


本申请公开了一种应用拓扑的动态感知方法、装置,其中,该方法包括:监听微服务架构中微服务应用的各连接的心跳响应消息,其中,心跳响应消息包括微服务应用的连接目标的元数据,元数据包括连接目标的地址信息;根据元数据获取微服务应用的局部应用拓扑描述信息;将局部应用拓扑描述信息发送给预设节点,以供预设节点根据局部应用拓扑描述信息生成微服务架构的全局应用拓扑,其中,全局应用拓扑指示微服务架构所包括的所有微服务应用和对应的连接目标之间的连接拓扑关系。通过本发明,解决了相关技术中,基于Trace数据实现微服务应用拓扑感知,若微服务调用还未有流量产生,则应用拓扑将会感知不到,或只能感知部分链路的应用拓扑的问题。应用拓扑的问题。应用拓扑的问题。


技术研发人员:

泮圣伟 林佳梁

受保护的技术使用者:

阿里巴巴(中国)有限公司

技术研发日:

2022.10.14

技术公布日:

2023/2/23

本文发布于:2024-09-21 20:36:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/60866.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:拓扑   所述   信息   局部
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议