网络拓扑结构的获取方法、装置、电子设备及存储介质

文档序号:1963671 发布日期:2021-12-14 浏览:12次 >En<

阅读说明:本技术 网络拓扑结构的获取方法、装置、电子设备及存储介质 (Method and device for acquiring network topology structure, electronic equipment and storage medium ) 是由 楚振江 宋晓东 李建均 汪瑫 于 2021-08-31 设计创作,主要内容包括:本公开提供了一种网络拓扑结构的获取方法、装置、电子设备及存储介质,涉及计算机技术领域,进一步涉及网络拓扑结构领域,以至少解决现有方案对于计算机复杂系统中大规模程序模块组成的网络拓扑结构无法准确构建和及时更新的技术问题。具体实现方案为:采集计算机系统的连接类型数据;基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构。(The present disclosure provides a method and an apparatus for obtaining a network topology, an electronic device and a storage medium, which relate to the field of computer technologies and further relate to the field of network topologies, and at least solve the technical problem that the existing solution cannot accurately construct and timely update a network topology composed of large-scale program modules in a computer complex system. The specific implementation scheme is as follows: collecting connection type data of a computer system; generating a reverse mapping relationship between each instance of the plurality of program modules and the corresponding program module based on the name service; identifying a connection relationship between the plurality of program modules using the connection type data and the reverse mapping relationship; and determining node information in the first program service network topology structure based on the identification information of each program module in the plurality of program modules, and determining side information in the first program service network topology structure based on the connection relationship to obtain the first program service network topology structure.)

网络拓扑结构的获取方法、装置、电子设备及存储介质

技术领域

本公开涉及计算机技术领域,进一步涉及网络拓扑结构领域,尤其涉及一种网络拓扑结构的获取方法、装置、电子设备及存储介质。

背景技术

在计算机复杂系统中,程序模块之间可以通过网络进行相互访问,高效准确地识别出程序模块之间的网络拓扑结构,对网络问题追查、系统快速复制迁移和系统全局信息掌握具有重要意义。

现有方案中,采用人工经验对复杂系统中的网络拓扑结构进行获取和维护,但是,随着互联网架构的微服务化,复杂系统中程序模块的数量进一步扩充,进而导致对于复杂系统整体架构的感知难度变大。

发明内容

本公开提供了一种网络拓扑结构的获取方法、装置、电子设备及存储介质,以至少解决现有方案对于计算机复杂系统中大规模程序模块组成的网络拓扑结构无法准确构建和及时更新的技术问题。

根据本公开的一方面,提供了一种网络拓扑结构的获取方法,包括:采集计算机系统的连接类型数据,其中,计算机系统包括:多个程序模块,多个程序模块中每个程序模块用于启动多个实例,连接类型数据包括:每个程序模块自身采集的远程调用连接关系、从服务网络系统获取到的模块连接关系;基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构。

根据本公开的又一方面,提供了一种网络拓扑结构的获取装置,包括:采集模块,用于采集计算机系统的连接类型数据,其中,计算机系统包括:多个程序模块,多个程序模块中每个程序模块用于启动多个实例,连接类型数据包括:每个程序模块自身采集的远程调用连接关系、从服务网络系统获取到的模块连接关系;生成模块,用于基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;识别模块,用于利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;获取模块,用于基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构。

根据本公开的又一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述任一项的网络拓扑结构的获取方法。

根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述任一项的网络拓扑结构的获取方法。

根据本公开的又一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述任一项的网络拓扑结构的获取方法。

在本公开中,通过采集计算机系统的连接类型数据;基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构,达到了高效感知计算机复杂系统的整体架构的目的,实现了准确构建和及时更新计算机复杂系统中大规模程序模块组成的网络拓扑结构的技术效果,解决了现有方案对于计算机复杂系统中大规模程序模块组成的网络拓扑结构无法准确构建和及时更新的技术问题。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

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

图1是根据本公开实施例的一种用于实现网络拓扑结构的获取方法的计算机终端(或移动设备)的硬件结构框图;

图2是根据本公开实施例的一种的网络拓扑结构的获取方法流程图;

图3是根据本公开实施例的一种基于服务网格的模块连接关系示意图;

图4是根据本公开实施例的一种下游实例的标识信息示意图;

图5是根据本公开实施例的一种的网络拓扑结构的获取方法示意图;

图6是根据本公开实施例的一种基于调度日志获取的网络拓扑结构的示意图;

图7是根据本公开实施例的又一种的网络拓扑结构的获取方法示意图;

图8是根据本公开实施例的一种的网络拓扑结构的获取系统示意图;

图9是根据本公开实施例的一种网络拓扑结构的获取装置的结构框图。

具体实施方式

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

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

计算机系统:通常由一些计算机程序模块组成,例如,程序模块A调用程序模块B,程序模块B又调用程序模块C,这样由程序模块A、程序模块B、程序模块C共同组成一个能提供完整功能的计算机系统,常见的计算机系统包括信息系统、网站程序、检索引擎等。

程序模块:也可以称为一个程序服务(Service),是能实现一定局部功能的计算机程序,例如提供用户注册功能、用户查询功能等,都可以使用计算机程序来实现,构成一个程序模块。

实例:程序模块的实际部署服务器(Server),在实际生产环境中,对程序模块会启动多个相同计算机程序,每一个启动的计算机程序成为一个实例Server,程序模块使用多实例通常是为了分散计算机程序的处理压力,也能做到一定的冗余互备。

名字服务(Naming Service,NS):对于同一组功能相同的实例,在分组和标识时所起的名字,代表实例在系统中的位置。名字服务通常用于程序模块之间的寻址,即程序模块A调用程序模块B时,通过程序模块B的名字来查询名字服务,获取程序模块B中每个实例所在的网络地址,网络地址包括互联网协议(Internet Protocol,IP)地址和端口(PORT)信息等。

现有方案中一般采用以下两种方式获取计算机复杂系统中的网络拓扑结构:

方案一:将计算机复杂系统进行划分,形成多个子系统,由人工对子系统中的数十个程序模块的网络拓扑结构进行梳理绘制,并且定期维护子系统中的拓扑结构的变更情况,最后将各子系统的拓扑信息进行汇总合并,形成一个依托人工经验维护的复杂系统网络拓扑结构。

方案一是在构建大量程序模块组成的网络拓扑结构时,对复杂系统进行细化拆解,在拆分子系统后依靠人工经验给出局部拓扑结构信息。这种方式首先对人工经验有较高的要求,需要花费较多人力资源进行拓扑维护;其次,采用人工经验对一些具体程序服务的拓扑变化的感知比较缓慢,容易存在遗留和错误信息,进而导致程序服务的拓扑信息不正确和更新不及时。

方案二:在计算机复杂系统中,对每一个计算机程序,集成相同的网络采集组件,通过嵌入到计算机程序的网络采集组件,将每一次下游网络的远程调用进行埋点采集获取,网络采集组件将连接信息进行上报给采集中心节点,获取复杂系统的网络拓扑结构。

方案二通过统一组件对每个计算机程序进行修改设计,对于不同编程语言下的计算机程序,需要提供不同的网络采集组件,增加的网络采集组件会对计算机程序的原有功能带来潜在的风险。例如,与原计算机程序存在兼容问题导致程序服务功能异常。此外,在计算机程序对网络采集组件进行集成后,需要针对每一个拓扑结构的上下游进行显式的调用,才能保证收集到拓扑结构数据,如果在计算机程序中对下游程序服务未显式调用网络采集组件,则会存在拓扑数据遗漏的情况。再者,方案二比较强依赖计算机程序逻辑的开发,在长期实施时,对程序维护带来较多的工作和成本。

现有技术方案无法对于计算机复杂系统中数量众多的程序模块组成的网络拓扑结构进行准确构建和及时更新。

根据本公开实施例,提供了一种网络拓扑结构的获取方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本公开实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的电子设备中执行。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。图1示出了一种用于实现网络拓扑结构的获取方法的计算机终端(或移动设备)的硬件结构框图。

如图1所示,计算机终端100包括计算单元101,其可以根据存储在只读存储器(ROM)102中的计算机程序或者从存储单元108加载到随机访问存储器(RAM)103中的计算机程序,来执行各种适当的动作和处理。在RAM 103中,还可存储计算机终端100操作所需的各种程序和数据。计算单元101、ROM 102以及RAM 103通过总线104彼此相连。输入/输出(I/O)接口105也连接至总线104。

计算机终端100中的多个部件连接至I/O接口105,包括:输入单元106,例如键盘、鼠标等;输出单元107,例如各种类型的显示器、扬声器等;存储单元108,例如磁盘、光盘等;以及通信单元109,例如网卡、调制解调器、无线通信收发机等。通信单元109允许计算机终端100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元101可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元101的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元101执行本文所描述的网络拓扑结构的获取方法。例如,在一些实施例中,网络拓扑结构的获取方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元108。在一些实施例中,计算机程序的部分或者全部可以经由ROM 102和/或通信单元109而被载入和/或安装到计算机终端100上。当计算机程序加载到RAM 103并由计算单元101执行时,可以执行本文描述的网络拓扑结构的获取方法的一个或多个步骤。备选地,在其他实施例中,计算单元101可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行网络拓扑结构的获取方法。

本文中描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

此处需要说明的是,在一些可选实施例中,上述图1所示的计算机终端可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述电子设备中的部件的类型。

在上述运行环境下,本公开提供了如图2所示的网络拓扑结构的获取方法,该方法可以由图1所示的计算机终端或者类似的电子设备执行。图2是根据本公开实施例提供的一种的网络拓扑结构的获取方法流程图。如图2所示,该方法可以包括如下步骤:

步骤S21,采集计算机系统的连接类型数据;

其中,计算机系统包括:多个程序模块,多个程序模块中每个程序模块用于启动多个实例,连接类型数据包括:每个程序模块自身采集的远程调用连接关系、从服务网络系统获取到的模块连接关系。

可选地,采用指标上报和数据轮询采集计算机系统的连接类型数据。具体的,指标上报主要通过每个计算机程序中的网络采集组件获取每个程序模块的远程调用连接关系;数据轮询是根据预先配置的查询任务获取服务网格中的模块连接关系。其中,服务网格是网络中一部分具有服务网格组件的程序模块组成的子网络。

例如,在云端计算机程序的网络通信中,各个程序应用的实例会使用远程调用(Remote Procedure Call,RPC)来进行网络通信,基于网络通信构建拓扑所需要的数据包括实例和名字服务两个维度,可以获取的远程调用连接关系如表1所示。在表1中,远程调用连接关系包括实例所在的IP和IP,IP和NS,NS和NS之间的连接关系,可以通过起点和终点描述远程调用关系。

表1基于网络通信获取的远程调用关系

类型 类型描述 起点upstream 终点downstream
Type-1 IP-2-IP IP-A:PORT IP-B:PORT
Type-2 IP-2-NS IP-A:PORT NS-B
Type-3 NS-2-NS NS-A NS-B

又例如,图3为本公开实施例提供的一种基于服务网格的模块连接关系示意图。如图3所示,服务网格在云原生架构中用来解决复杂系统中的服务模块调用关系管理,为组成计算机系统中的三个程序模块X、Y、Z共同提供服务。其中,模块X访问调用模块Y,模块Y访问调用模块Z,在模块X和模块Y的服务实例中部署服务网格服务,负责管理模块X和模块Y之间的调用访问关系。从模块X和模块Y的服务网格上,收集和上报程序服务X->Y和程序服务Y->Z的网络连接数据,作为服务拓扑NS之间的拓扑连接,进一步通过模块映射信息,确定模块的连接关系为模块X->模块Y->模块Z。

步骤S22,基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;

其中,程序模块与NS之间是一一对应的映射关系,程序模块与实例之间是一对多的映射关系,反向映射关系为每个实例到对应程序模块的映射关系。

例如,基于名字服务生成的多个程序模块中每个实例与对应程序模块的反向映射关系可以如表2中所示。

表2程序模块映射表

具体的,基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系的实现过程可以参照对于本公开实施例的进一步介绍。

步骤S23,利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;

具体的,利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系的实现过程可以参照对于本公开实施例的进一步介绍。

步骤S24,基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构。

可选地,对第一程序服务网络拓扑结构的边信息进行评估,获得边置信度,根据边置信度和第一程序服务网络拓扑结构的点信息得到第一程序服务网络拓扑结构。

具体的,基于连接关系确定第一程序服务网络拓扑结构中的边信息的实现过程可以参照对于本公开实施例的进一步介绍。

根据本公开上述步骤S21至步骤S24,通过采集计算机系统的连接类型数据;基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构,达到了高效感知计算机复杂系统的整体架构的目的,实现了准确构建和及时更新计算机复杂系统中大规模程序模块组成的网络拓扑结构的技术效果,解决了现有方案对于计算机复杂系统中大规模程序模块组成的网络拓扑结构无法准确构建和及时更新的技术问题。

下面对该实施例的上述方法进行进一步介绍。

作为一种可选的实施方式,网络拓扑结构的获取方法还包括:

步骤S25,输出第一程序服务网络拓扑结构。

可选地,输出的第一程序服务网络拓扑结构可以直接提供给外部需求应用方,例如,外部需求方可以包括构建架构拓扑感知、服务网格展示、系统稳定性建设等。

可选地,将系统核心指标添加到输出的第一程序服务网络拓扑结构中,获取系统架构拓扑图。其中,系统核心指标可以包括系统内存、响应耗时、节点名称、互连节点间的数据传输速度、每个子系统中节点的数量、服务拓扑的开始节点以及拓扑深度中的一项或者多项。

例如,在输出的第一程序服务网络拓扑结构中增加系统核心指标,根据不同的系统核心指标展示网络节点的不同状态,可以采用不同颜色用来网络拓扑结构中节点与连接边的动态数据情况,进而提供给外部压力测试、机房建设、连接测试等场景使用。

作为一种可选的实施方式,网络拓扑结构的获取方法还包括:

步骤S26,为第一程序服务网络拓扑结构添加辅助配置信息,得到第二程序服务网络拓扑结构;

其中,上述辅助配置信息可以是第一程序服务网络拓扑结构关联的标注信息,辅助配置信息可用于对第一程序服务网络拓扑结构进行补充。例如,辅助配置信息可以包括人工标注的黑名单辅助信息和白名单辅助信息。

例如,如表3所示,辅助配置信息可以包括人工标注的黑名单辅助信息和白名单辅助信息。其中,人工标注的拓扑边类型包括连接白名单、连接黑名单等类型,在获取网络拓扑结构时会结合连接类型数据,进行程序模块实际的加权置信度评估,根据评估结果确定模块连接的优先级权值,最终获得第二程序服务网络拓扑结构,其中人工标注的辅助配置信息的优先级高于置信度的评估结果。

在表3中,模块A与模块B之间的置信度为100,两者的拓扑边类型为白名单,即可以人为设定模块A和模块B之间的连接关系;模块A与模块E之间的置信度为100,但两者的拓扑边类型为黑名单,即可以人为设定模块A和模块E之间不能连接;模块B与模块C之间的置信度为99,但两者的拓扑边类型为自动,即可以根据预设的置信度阈值自动判断模块B与模块C之间是否连接,置信度阈值可以灵活进行实时调整。例如,设定置信度>=80为可信,置信度低于<50为不可信。

表3人工标注的黑名单辅助信息和白名单辅助信息

类型 起点upstream 终点downstream 置信度reliability
白名单 module-A module-B 100
黑名单 module-A module-E 100
自动 module-B module-C 99

步骤S27,输出第二程序服务网络拓扑结构。

作为一种可选的实施方式,在步骤S23,利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系包括:

步骤S231,利用连接类型数据获取原始实例数据信息;

其中,原始实例数据包括实例的IP和PORT信息。

步骤S232,基于反向映射关系和原始实例数据信息获取连接关系。

作为一种可选的实施方式,在步骤S231,利用连接类型数据获取原始实例数据信息包括:

步骤S2311,利用连接类型数据从多个程序模块中选取目标程序模块;

步骤S2312,通过目标程序模块的名字服务获取目标程序模块对应的多个实例;

步骤S2313,获取多个实例中每个实例连接的上游实例和下游实例的标识信息。

上述上游实例和下游实例的标识信息包括上游实例和下游实例的IP和PORT信息。例如,图4为下游实例的标识信息包括计算机程序服务实例的网络通信数据指标,可以用于计算程序模块之间的连接关系和连接计数。在图4中,计算机程序服务实例的网络通信数据指标包括创建时间、远程端、加密套接字协议层(Secure Sockets Layer,SSL)、协议、字节传输速度等。

作为一种可选的实施方式,在步骤S232,基于反向映射关系和原始实例数据信息获取连接关系包括:

步骤S2321,依据多个实例中每个实例连接的上游实例和下游实例的标识信息,确定多个实例中每个实例的上游连接关系、上游连接计数、下游连接关系以及下游连接计数;

其中,上游连接关系是多个实例中每个实例与相邻的上游实例之间的连接关系,下游连接关系是多个实例中每个实例与相邻的下游实例之间的连接关系,上游连接计数用于确定目标程序模块与上游实例对应的上游程序模块之间存在拓扑边关系的置信度,下游连接计数用于确定目标程序模块与下游实例对应的下游程序模块之间存在拓扑边关系的置信度。

步骤S2322,基于反向映射关系、多个实例中每个实例的上游连接关系、上游连接计数、下游连接关系以及下游连接计数,获取连接关系。

例如,获取到的连接关系可以如表4中所示。在连接关系构建中,可以发现下游一些新增的程序模块,将这些新发现模块标记为未知(unknown)并记录为新节点发现,反馈记录到配置平台系统中,根据每个module未知连接量,促进模块去做识别和添加完善。例如,在表3中module-B→unknown,代表需要从模块B去发掘出潜在的unknown模块,通过平台审核确认后更新加入到网络拓扑的连接关系中。

表4程序模块的连接关系

下面结合图5介绍利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系的实现过程。图5是根据本公开实施例的一种的网络拓扑结构的获取方法示意图。如图5所示,首先获取连接类型数据,同时通过构建实例->模块、NS->模块的反向映射关系表(如表2),用来识别模块与模块之间的连接关系。在本公开的网络拓扑结构的获取方法中,连接关系上游起点用upstream表示,下游终点用downstream表示,求解F(upstream,downstream)的成对组合关系,即可获得如表4中所示的程序模块的连接关系。

作为一种可选的实施方式,在步骤S22,基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系包括:每间隔预设时长,基于名字服务生成每个实例与对应程序模块的反向映射关系,其中,预设时长用于确定反向映射关系的有效时长。设置反向映射关系的有效时长,即可以在反向映射关系失效后及时重建,可以保证定期淘汰失效无用的数据,及时获取更新网络拓扑结构。

例如,预设时长可以为10分钟,基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系,在生成第一轮反向映射关系后,每隔10分钟进行一次重建,以实现对网络拓扑结构的及时更新。

作为一种可选的实施方式,在步骤S24,基于连接关系确定第一程序服务网络拓扑结构中的边信息包括:

步骤S241,基于连接关系从多个程序模块中选取任一程序模块为上游节点;

步骤S242,从上游节点开始依次查找相邻的下游节点,并在上游节点与相邻的下游节点之间构建程序服务网络拓扑结构的拓扑边,得到程序服务网络拓扑结构中的边信息。

作为一种可选的实施方式,在步骤S21,采集计算机系统的连接类型数据包括:利用多个程序模块之间的调度日志获取连接类型数据。

上述多个程序模块之间的调度日志中包括日志名、时间、下游程序模块的NS、下游实例、访问唯一的ID标记、访问时间。

例如,可以根据模块A的IP和模块A的调度日志中下游模块的NS,获取到IP-2-NS的连接类型数据。图6为根据本公开实施例的一种基于调度日志获取的网络拓扑结构的示意图,如图6所示,通过模块A的调度日志,可以生成步长为1的连接关系,起点上游模块A->下游模块B,依次递归对下游模块进行调度日志分析,可得到进一步的连接关系,例如,上游模块B->下游模块F,上游模块F->下游模块G,上游模块G->下游模块H。根据每一轮分析得到的多步长连接关系,获取到连接类型数据,进而获取计算机系统的网络拓扑结构。

本公开提供的网络拓扑结构的获取方法,可以在服务拓扑上层支持更多定制能力。例如,可以支持起点选择、拓扑深度、模块合并展示等处理能力。上述网络拓扑结构的获取方法能够实现复杂系统中千个程序模块的相互访问,正确和高效识别出程序模块之间的网络拓扑结构,从而对网络问题追查、系统快速复制迁移和系统全局信息掌握具有重要作用。

图7是根据本公开实施例的一种的网络拓扑结构的获取方法示意图。如图7所示,在构建计算机服务拓扑的过程中,首先通过拓扑采集对数据进行引入,通过分析识别策略来实现节点发现和连接关系判别,将计算识别出的连接关系主动更新到网络拓扑结构中。同时利用人工经验作为辅助补充,通过平台进行连接关系的辅助干预,生成人工经验配置,最终与分析识别的拓扑组成系统整体的拓扑数据,可以与系统指标结合获取网络拓扑结构,并最终提供给多方应用使用。例如,目前应用在搜索引擎、信息流推荐系统和云端服务系统中,覆盖服务拓扑的节点数量超过10000个,每个节点支持超过1500项拓扑指标数据。

下面结合图8对图7中所示各个实现过程进行进一步介绍。

图8是根据本公开实施例的一种的网络拓扑结构的获取系统示意图。如图8所示,上述系统主要包括数据采集、模块解析、分析识别、拓扑构建和拓扑数据输出五个执行部件。

其中,数据采集部件可用于采集计算机系统的连接类型数据;模块解析部件可用于基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;分析识别部件可用于利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;拓扑构建部件可用于基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构;拓扑数据输出部件可用于输出第一程序服务网络拓扑结构或者第二程序服务网络拓扑结构。利用图8所示的系统获取网络拓扑结构,能够实现服务程序的拓扑信息动态更新,同时能够避免对现有服务程序做侵入修改的影响,克服人工经验辅助拓扑构建的技术缺陷。

在本公开中,通过采集计算机系统的连接类型数据;基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构,达到了高效感知计算机复杂系统的整体架构的目的,实现了准确构建和及时更新计算机复杂系统中大规模程序模块组成的网络拓扑结构的技术效果,解决了现有方案对于计算机复杂系统中大规模程序模块组成的网络拓扑结构无法准确构建和及时更新的技术问题。

本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本公开各个实施例所述的方法。

在本公开中还提供了一种网络拓扑结构的获取装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图9是根据本公开其中一实施例的网络拓扑结构的获取装置的结构框图,如图9所示,网络拓扑结构的获取装置900包括:采集模块901,生成模块902,识别模块903,获取模块904。

采集模块901,用于采集计算机系统的连接类型数据,其中,计算机系统包括:多个程序模块,多个程序模块中每个程序模块用于启动多个实例,连接类型数据包括:每个程序模块自身采集的远程调用连接关系、从服务网络系统获取到的模块连接关系;

生成模块902,用于基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;

识别模块903,用于利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;

获取模块904,用于基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构。

可选地,网络拓扑结构的获取装置900还包括:第一输出模块905,用于输出第一程序服务网络拓扑结构。

可选地,网络拓扑结构的获取装置900还包括:辅助模块906,用于为第一程序服务网络拓扑结构添加辅助配置信息,得到第二程序服务网络拓扑结构,其中,辅助配置信息是第一程序服务网络拓扑结构关联的标注信息;第二输出模块907,用于输出第二程序服务网络拓扑结构。

可选地,识别模块903,用于利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系包括:利用连接类型数据获取原始实例数据信息;基于反向映射关系和原始实例数据信息获取连接关系。

可选地,利用连接类型数据获取原始实例数据信息包括:利用连接类型数据从多个程序模块中选取目标程序模块;通过目标程序模块的名字服务获取目标程序模块对应的多个实例;获取多个实例中每个实例连接的上游实例和下游实例的标识信息。

可选地,基于反向映射关系和原始实例数据信息获取连接关系包括:依据多个实例中每个实例连接的上游实例和下游实例的标识信息,确定多个实例中每个实例的上游连接关系、上游连接计数、下游连接关系以及下游连接计数,其中,上游连接关系是多个实例中每个实例与相邻的上游实例之间的连接关系,下游连接关系是多个实例中每个实例与相邻的下游实例之间的连接关系,上游连接计数用于确定目标程序模块与上游实例对应的上游程序模块之间存在拓扑边关系的置信度,下游连接计数用于确定目标程序模块与下游实例对应的下游程序模块之间存在拓扑边关系的置信度;基于反向映射关系、多个实例中每个实例的上游连接关系、上游连接计数、下游连接关系以及下游连接计数,获取连接关系。

可选地,生成模块902,用于基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系包括:每间隔预设时长,基于名字服务生成每个实例与对应程序模块的反向映射关系,其中,预设时长用于确定反向映射关系的有效时长。

可选地,获取模块904,用于基于连接关系确定第一程序服务网络拓扑结构中的边信息包括:基于连接关系从多个程序模块中选取任一程序模块为上游节点;从上游节点开始依次查找相邻的下游节点,并在上游节点与相邻的下游节点之间构建程序服务网络拓扑结构的拓扑边,得到程序服务网络拓扑结构中的边信息。

可选地,采集模块901,用于采集计算机系统的连接类型数据包括:利用多个程序模块之间的调度日志获取连接类型数据。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

根据本公开的实施例,本公开还提供了一种电子设备,包括存储器和至少一个处理器,该存储器中存储有计算机指令,该处理器被设置为运行计算机指令以执行上述任一项方法实施例中的步骤。

可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,采集计算机系统的连接类型数据;

S2,基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;

S3,利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;

S4,基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

根据本公开的实施例,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该非瞬时计算机可读存储介质中存储有计算机指令,其中,该计算机指令被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述非易失性存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,采集计算机系统的连接类型数据;

S2,基于名字服务生成多个程序模块中每个实例与对应程序模块的反向映射关系;

S3,利用连接类型数据和反向映射关系识别多个程序模块之间的连接关系;

S4,基于多个程序模块中每个程序模块的标识信息确定第一程序服务网络拓扑结构中的节点信息,以及基于连接关系确定第一程序服务网络拓扑结构中的边信息,得到第一程序服务网络拓扑结构。

可选地,在本实施例中,上述非瞬时计算机可读存储介质可以包括但不限于:U盘、只读存储器(ROM)、随机存取存储器(RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

根据本公开的实施例,本公开还提供了一种计算机程序产品。用于实施本公开的音频处理方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。

在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本公开所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM)、随机存取存储器(RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:自适应的可重构处理阵列与主控交互方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!