CN107861821B - 模块调用关系的挖掘方法、装置及计算机可读介质 - Google Patents
模块调用关系的挖掘方法、装置及计算机可读介质 Download PDFInfo
- Publication number
- CN107861821B CN107861821B CN201711017603.2A CN201711017603A CN107861821B CN 107861821 B CN107861821 B CN 107861821B CN 201711017603 A CN201711017603 A CN 201711017603A CN 107861821 B CN107861821 B CN 107861821B
- Authority
- CN
- China
- Prior art keywords
- instance
- identifier
- machine
- module
- deployed
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种模块调用关系的挖掘方法、装置及计算机可读介质。其方法包括:获取发送信息的第一实例和接收信息的第二实例之间的连接信息;其中第一实例为调用模块部署在第一机器上的实例,第二实例为被调用模块部署在第二机器上的实例;根据连接信息,获取调用模块的标识和被调用模块的标识;根据调用模块的标识和被调用模块的标识,生成调用模块与被调用模块的调用关系。本发明的技术方案,与现有任何一种方式相比,能够有效地提高模块调用关系的挖掘效率。
Description
【技术领域】
本发明涉及计算机应用技术领域,尤其涉及一种模块调用关系的挖掘方法、装置及计算机可读介质。
【背景技术】
当前的互联网应用通常都是使用大规模的分布式集群来实现的,一个应用通常由多个模块组成,且多个模块可能会采用不同语言开发、不同团队实现,并部署在不同的机房、不同的机器上。
基于上述所述,可以知道一个应用中的多个模块之间具有非常复杂的关系。而若要对应用的故障进行诊断、服务进行治理,均需要确定应用中的模块与模块之间的调用关系。现有技术中,确定应用中模块间的调用方法,通常采用如下几种方式:第一种:人工梳理配置,由网站可靠性工程师(Site Reliability Engineer;SRE)通过人工的方式来梳理应用的模块间调用关系;第二种:基于远程过程调用协议(Remote Procedure CallProtocol;RPC)或日志的trace数据的方式,trace***是用于跟踪复杂分布式***的某个请求的完整调用链路,例如***的dapper、twitter的zipkin和淘宝的鹰眼,根据该种方式可以挖掘出请求完整的调用链路,便可以还原出模块间的调用关系。第三种:基于平台即服务(Platform-as-a-service;Paas)来配置,使用Paas平台的流量接入配置。
但是,上述现有的应用的模块调用关系的挖掘中,其中人工梳理配置的方式,复杂的分布式***的模块数量巨大,并且部署在多个机房,需要随着业务发展调用关系不断演进,造成人工梳理维护成本较高且不可靠;而基于RPC或日志的trace数据的方式,要求分布式***中的每个模块都尽量使用相同的RPC框架或者每个模块都的日志都被采集进入到trace***时,这对于有些公司的场景来说比较困难,造成无法有效地挖掘到模块调用关系;而基于Paas平台配置,通常在公司内部会有多个异构的Paas平台,借助Paas平台配置挖掘调用关系,代价较大。基于以上所述,可以知道,现有的模块调用关系的挖掘效率较低。
【发明内容】
本发明提供了一种模块调用关系的挖掘方法、装置及计算机可读介质,用于提高现有的模块调用关系的挖掘效率。
本发明提供一种模块调用关系的挖掘方法,所述方法包括:
获取发送信息的第一实例和接收信息的第二实例之间的连接信息;所述第一实例为调用模块部署在第一机器上的实例,所述第二实例为被调用模块部署在第二机器上的实例;
根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识;
根据所述调用模块的标识和所述被调用模块的标识,生成所述调用模块与所述被调用模块的调用关系。
进一步可选地,如上所述的方法中,当所述第一机器上仅部署所述第一实例,所述第二机器上仅部署所述第二实例时,根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识,具体包括:
从所述连接信息中,获取所述第一机器的标识以及所述第二机器的标识;
根据所述第一机器的标识,从管理中心获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识;
根据所述第二机器的标识,从所述管理中心获取所述第二机器中部署的所述第二实例对应的所述被调用模块的标识。
进一步可选地,如上所述的方法中,根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识之前,所述方法还包括:
在所述第一实例部署时,在所述管理中心中存储所述第一实例对应的所述调用模块的标识与所述第一机器的标识之间的对应关系;
在所述第二实例部署时,在所述管理中心中存储所述第二实例对应的所述被调用模块的标识与所述第二机器的标识之间的对应关系。
进一步可选地,如上所述的方法中,当所述第一机器上部署有包括所述第一实例的多个实例,所述第二机器上部署有包括所述第二实例的多个实例时,根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识,具体包括:
从所述连接信息中,获取所述第一机器的标识和所述第一实例对应的发送端口的标识、以及所述第二机器的标识和所述第二实例对应的监听端口的标识;
根据所述第二机器的标识和所述第二实例对应的监听端口的标识,从管理中心获取所述第二机器中部署的所述第二实例对应的所述被调用模块的标识;
根据所述第一机器的标识和所述第一实例对应的发送端口,获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识。
进一步可选地,如上所述的方法中,根据所述第一机器的标识和所述第一实例对应的发送端口,获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识,具体包括:
根据所述第一机器的标识和所述第一实例对应的发送端口,从所述第一机器获取与所述发送端口同服务于所述第一实例的监听端口的标识;
根据所述第一机器的标识和所述第一实例的监听端口的标识,从所述管理中心获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识。
进一步可选地,如上所述的方法中,根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识之前,所述方法还包括:
在所述第一实例部署时,在所述管理中心中存储所述第一实例对应的所述调用模块的标识、与采用所述第一机器的标识以及所述第一实例的监听端口的标识共同标识的所述第一实例之间的对应关系;
在所述第二实例部署时,在所述管理中心中存储所述第二实例对应的所述被调用模块的标识、与采用所述第二机器的标识以及所述第二实例的监听端口的标识共同标识的所述第二实例之间的对应关系。
进一步可选地,如上所述的方法中,获取发送信息的第一实例和接收信息的第二实例之间的连接信息,具体包括:
在所述第二实例中使用连接查看工具,获取所述第一实例和所述第二实例之间的所述连接信息。
本发明提供一种模块调用关系的挖掘装置,所述装置包括:
连接信息获取模块,用于获取发送信息的第一实例和接收信息的第二实例之间的连接信息;所述第一实例为调用模块部署在第一机器上的实例,所述第二实例为被调用模块部署在第二机器上的实例;
模块信息获取模块,用于根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识;
调用关系生成模块,用于根据所述调用模块的标识和所述被调用模块的标识,生成所述调用模块与所述被调用模块的调用关系。
进一步可选地,如上所述的装置中,所述模块信息获取模块,具体用于:
当所述第一机器上仅部署所述第一实例,所述第二机器上仅部署所述第二实例时,从所述连接信息中,获取所述第一机器的标识以及所述第二机器的标识;
根据所述第一机器的标识,从管理中心获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识;
根据所述第二机器的标识,从所述管理中心获取所述第二机器中部署的所述第二实例对应的所述被调用模块的标识。
进一步可选地,如上所述的装置中,所述装置还包括:
存储模块,用于在所述第一实例部署时,在所述管理中心中存储所述第一实例对应的所述调用模块的标识与所述第一机器的标识之间的对应关系;
所述存储模块,还用于在所述第二实例部署时,在所述管理中心中存储所述第二实例对应的所述被调用模块的标识与所述第二机器的标识之间的对应关系。
进一步可选地,如上所述的装置中,所述模块信息获取模块,具体用于:
当所述第一机器上部署有包括所述第一实例的多个实例,所述第二机器上部署有包括所述第二实例的多个实例时,从所述连接信息中,获取所述第一机器的标识和所述第一实例对应的发送端口的标识、以及所述第二机器的标识和所述第二实例对应的监听端口的标识;
根据所述第二机器的标识和所述第二实例对应的监听端口的标识,从管理中心获取所述第二机器中部署的所述第二实例对应的所述被调用模块的标识;
根据所述第一机器的标识和所述第一实例对应的发送端口,获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识。
进一步可选地,如上所述的装置中,所述模块信息获取模块,具体用于:
根据所述第一机器的标识和所述第一实例对应的发送端口,从所述第一机器获取与所述发送端口同服务于所述第一实例的监听端口的标识;
根据所述第一机器的标识和所述第一实例的监听端口的标识,从所述管理中心获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识。
进一步可选地,如上所述的装置中,所述存储模块,具体用于在所述第一实例部署时,在所述管理中心中存储所述第一实例对应的所述调用模块的标识、与采用所述第一机器的标识以及所述第一实例的监听端口的标识共同标识的所述第一实例之间的对应关系;
所述存储模块,具体还用于在所述第二实例部署时,在所述管理中心中存储所述第二实例对应的所述被调用模块的标识、与采用所述第二机器的标识以及所述第二实例的监听端口的标识共同标识的所述第二实例之间的对应关系。
进一步可选地,如上所述的装置中,所述连接信息获取模块,具体用于在所述第二实例中使用连接查看工具,获取所述第一实例和所述第二实例之间的所述连接信息。
本发明还提供一种计算机设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的模块调用关系的挖掘方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的模块调用关系的挖掘方法。
本发明的模块调用关系的挖掘方法、装置及计算机可读介质,通过获取发送信息的第一实例和接收信息的第二实例之间的连接信息;其中第一实例为调用模块部署在第一机器上的实例,第二实例为被调用模块部署在第二机器上的实例;根据连接信息,获取调用模块的标识和被调用模块的标识;根据调用模块的标识和被调用模块的标识,生成调用模块与被调用模块的调用关系。本发明的技术方案,与现有技术的人工梳理配置的方式相比,不仅可以省去人工成本,而且可以自动实现挖掘,有效地提高模块调用关系的挖掘效率,而且省去人工操作,可以提高挖掘的模块调用关系的精度,保证模块调用关系的可靠性。另外,与现有的基于RPC或日志的trace数据的方式相比,不受特殊场景的限制,可以有效地挖掘任何场景的模块调用关系,灵活性比较高。再者,与现有的基于Paas平台配置方式相比,不需要基于公司内部的任何异构的Paas平台来实现,模块调用关系的代价较小,从而能够有效地提高模块调用关系的挖掘。因此,基于以上所述,可以知道,本发明的技术方案,与现有任何一种方式相比,能够有效地提高模块调用关系的挖掘效率。
【附图说明】
图1为本发明的模块调用关系的挖掘方法实施例一的流程图。
图2为本发明的模块调用关系的挖掘方法实施例二的流程图。
图3为本发明的模块调用关系的挖掘方法实施例三的流程图。
图4为本发明提供的一种模块的调用过程示意图。
图5为本发明提供的另一种模块的调用过程示意图。
图6为本发明提供的再一种模块的调用过程示意图。
图7为本发明的模块调用关系的挖掘装置实施例一的结构图。
图8为本发明的模块调用关系的挖掘装置实施例二的结构图。
图9为本发明的计算机设备实施例的结构图。
图10为本发明提供的一种计算机设备的示例图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1为本发明的模块调用关系的挖掘方法实施例一的流程图。如图1所示,本实施例的模块调用关系的挖掘方法,具体可以包括如下步骤:
100、获取发送信息的第一实例和接收信息的第二实例之间的连接信息;其中第一实例为调用模块部署在第一机器上的实例,第二实例为被调用模块部署在第二机器上的实例;
本实施例的模块调用关系的挖掘方法的应用场景为:在一个应用中有多个模块,不同模块的实例可以部署在同一物理机器上,也可以部署在不同的物理机器上。其中实例为模块运行部署在某台机器上的单个实体单位。当每个机器上仅部署一个实例时,此时情况较为简单,该实例可以采用该机器的标识来唯一标识。而当每个机器上部署多个实例时,此时该实例可以采用该机器的标识+监听端口(port)的标识来唯一标识。其中机器的标识用于唯一标识该机器,例如可以采用机器的网络之间互连的协议(Internet Protocol;IP)地址来标识。即每个机器上部署多个实例时,可以采用实例所部属的机器的IP地址+监听端口的标识来唯一标识实例。
若不同模块的实例部署在同一物理机器上时,具体可以通过在同一物理机器上设置不同的IP地址的虚拟机,使得不同的模块的实例部署在不同的IP地址下的机器(即虚拟机)上。另外,为了增强应用的容错性能,应用中的同一模块可以部署多个实例,具体地,同一模块的不同实例可以部署在同一物理机器上,也可以部署在不同的物理机器上。同理同一模块的不同实例部署在同一物理机器上时,具体也可以通过在同一物理机器上设置不同IP地址的虚拟机,使得同一模块的不同实例部署在不同的IP地址下的机器(即虚拟机)上。
本实施例的模块调用关系的挖掘方法的执行主体为模块调用关系的挖掘装置,该模块调用关系的挖掘装置可以运行在该应用部署的多个机器上,以便于对多个机器进行访问,挖掘该应用的模块调用关系。基于以上所述,可以知道本实施例的机器如第一机器和第二机器均指的是应用的模块部署的机器,每个机器具有自己独立的IP地址,而机器具体可能是物理机器,也有可能时虚拟机器,只要保证机器之间具有不同的IP地址即可。即本实施例中,具体通过机器的IP地址来表示机器的标识。
本实施例中,以任意两个具有连接关系的实例如第一实例和第二实例为研究对象,来挖掘这两个实例对应的模块之间的调用关系。其中第一实例作为发送消息的实例,则第一实例对应的模块为调用模块。第二实例作为监听消息即接收消息的实例,则第二实例对应的模块为被调用模块。本实施例即用于挖掘调用模块与被调用模块之间的调用关系。首先,获取发送信息的第一实例和接收信息的第二实例之间的连接信息;例如,具体可以从第二实例中使用连接查看工具,获取第一实例和第二实例之间的连接信息。例如使用SS等传输控制协议(Transmission Control Protocol;TCP)连接查看工具,可以获取到与第二实例建立通信的连接,并取连接的另一端为第一实例,来挖掘第一实例和第二实例之间的调用模块与被调用模块的调用关系。例如,其中的连接信息中,可以包括第二实例所部属的第二机器的标识如IP地址和第二实例的监听端口的标识,同时还可以包括第一实例所部属的第一机器的标识如IP地址和第一实例的发送端口的标识;或者还可以包括其他信息,在此不再一一举例赘述。由于每一个实例用于发送消息的发送端口和接收消息的监听端口通常不会采用相同的端口,所以发送端口的标识和监听消息的端口的标识是不同的;且模块部署时,可以预先为该模块在各个机器上部署的实例的监听端口设置相同的监听端口的标识,便于管理。具体地,可以在应用的管理中心中存储应用中的每个模块与实例的对应关系,例如具体包括该应用包括的每个模块的标识,以及模块部署的每个实例所在的机器的标识如IP地址和每个实例的监听端口的标识。
而每个机器上部署的实例的发送消息的发送端口是随机打开的,所以发送端口的标识是不确定的,不做统一管理。
其中第一实例是发送信息的发送端,第二实例时接收信息的接收端,由第一实例向第二实例发送信息,则可以得知本实施例中是由第一实例对应的调用模块调用第二实例对应的被调用模块。
101、根据连接信息,获取调用模块的标识和被调用模块的标识;
根据上述的连接信息,可以获取到与调用模块相关的信息,如调用模块部属所在的第一机器的标识如IP地址、调用模块部属在第一机器上的第一实例的监听端口的标识以及其他信息等等。同时还可以获取到与被调用模块相关的信息,如被调用模块部属所在的第二机器的标识如IP地址、被调用模块部属在第二机器上的第二实例的监听端口的标识以及其他信息等等。根据调用模块的上述相关信息和被调用模块的上述相关信息,可以获取到调用模块的标识和被调用模块的标识。
102、根据调用模块的标识和被调用模块的标识,生成调用模块与被调用模块的调用关系。
由于第一实例对应调用模块,第二实例对应被调用模块,根据上述第一实例和第二实例之间的连接信息,可以获取到调用模块的标识和被调用模块的标识。例如调用模块的标识为A,被调用模块的标识为B,则可以生成模块A调用模块B的调用关系,如采用符号表示可以表示为A→B。
按照上述实施例的方式,可以对应用中的任意两个模块间的调用关系进行挖掘,从而生成该应用的所有模块之间的调用关系,从而便于对应用的模块间的故障进行诊断分析,并便于对应用的各模块的服务进行治理,使用非常方便。
本实施例的模块调用关系的挖掘方法,通过获取发送信息的第一实例和接收信息的第二实例之间的连接信息;其中第一实例为调用模块部署在第一机器上的实例,第二实例为被调用模块部署在第二机器上的实例;根据连接信息,获取调用模块的标识和被调用模块的标识;根据调用模块的标识和被调用模块的标识,生成调用模块与被调用模块的调用关系。本实施例的技术方案,与现有技术的人工梳理配置的方式相比,不仅可以省去人工成本,而且可以自动实现挖掘,有效地提高模块调用关系的挖掘效率,而且省去人工操作,可以提高挖掘的模块调用关系的精度,保证模块调用关系的可靠性。另外,与现有的基于RPC或日志的trace数据的方式相比,不受特殊场景的限制,可以有效地挖掘任何场景的模块调用关系,灵活性比较高。再者,与现有的基于Paas平台配置方式相比,不需要基于公司内部的任何异构的Paas平台来实现,模块调用关系的代价较小,从而能够有效地提高模块调用关系的挖掘。因此,基于以上所述,可以知道,本实施例的技术方案,与现有任何一种方式相比,均能够有效地提高模块调用关系的挖掘效率。
图2为本发明的模块调用关系的挖掘方法实施例二的流程图。如图2所示,本实施例的模块调用关系的挖掘方法,在上述图1所示实施例的技术方案的基础上,以一个机器上仅部署一个实例为例,详细描述本发明的技术方案。如图2所示,本实施例的模块调用关系的挖掘方法,具体可以包括如下步骤:
200、在第一机器上仅部署第一实例,在第二机器上仅部署第二实例,在管理中心存储第一实例对应的调用模块的标识与第一机器的标识之间的对应关系、以及第二实例对应的被调用模块的标识与第二机器的标识之间的对应关系;
同理,本实施例中第一机器的标识可以为第一机器的IP地址,第二机器的标识也可以为第二机器的IP地址。
本实施例中,以在一个机器上仅部属一个实例为例,即第一机器上仅部属有第一实例,第二机器上仅部属有第二实例,这样根据第一机器的标识如IP地址便可以得知该第一机器上部属的调用模块的标识,根据第二机器的标识如IP地址便可以得知该第二机器上部属的调用模块的标识。因此本实施例中,可以仅在管理中心存储第一实例对应的调用模块的标识与第一机器的标识之间的对应关系、以及第二实例对应的被调用模块的标识与第二机器的标识之间的对应关系。当然为了管理信息的丰富性,也可以在管理中心存储每个实例的监听端口的标识等信息,在此不再一一举例赘述。
201、挖掘模块调用关系时,从第二机器上获取发送信息的第一实例和接收信息的第二实例之间的连接信息;
本实施例中,由于第一机器上仅部署有第一实例,第二机器上仅部署有第二实例,因此,在第二机器上获取的连接信息即为连接第二实例的连接信息,此时可以取连接第二实例的另一端为第一实例。在该连接信息中可以记录有第一实例所部属的第一机器的标识如IP地址、和第二实例所部署的第二机器的标识如IP地址。例如具体使用ss等tcp连接查看工具在第二实例上收集第一实例和第二实例之间的连接信息。
202、从连接信息中,获取第一机器的标识以及第二机器的标识;
203、根据第一机器的标识,从管理中心获取第一机器中部署的第一实例对应的调用模块的标识;
204、根据第二机器的标识,从管理中心获取第二机器中部署的第二实例对应的被调用模块的标识;
本实施例的步骤202-204为上述图1所示实施例的步骤101的一种具体实现方式。
根据上述步骤201获取的连接信息,可以从连接信息中获取第一机器的标识如IP地址以及第二机器的标识如IP地址。然后根据步骤200中在管理中心存储的信息,可以根据第一机器的标识,从管理中心中查询并获取到第一机器中部署的第一实例对应的调用模块的标识。同理,根据第二机器的标识,可以从管理中心中查询并获取到第二机器中部署的第二实例对应的被调用模块的标识。
本实施例的管理中心可以位于该应用的多个模块所部属的任一机器上,以便于本实施例的模块调用关系的挖掘装置可以访问到。
205、根据调用模块的标识和被调用模块的标识,生成调用模块与被调用模块的调用关系。
按照上述实施例的方式,可以对应用中的任意两个模块间的调用关系进行挖掘,从而生成该应用的所有模块之间的调用关系。
本实施例的模块调用关系的挖掘方法,通过采用上述技术方案,可以省去挖掘模块调用关系的人工操作,提高挖掘的模块调用关系的精度,保证模块调用关系的可靠性,而且能够有效地提高模块调用关系的挖掘效率。
图3为本发明的模块调用关系的挖掘方法实施例三的流程图。如图3所示,本实施例的模块调用关系的挖掘方法,在上述图1所示实施例的技术方案的基础上,以一个机器上可以部署多个实例为例,详细描述本发明的技术方案。如图3所示,本实施例的模块调用关系的挖掘方法,具体可以包括如下步骤:
300、在第一机器上部署包括第一实例的多个实例,在第二机器上部署包括第二实例的多个实例,在管理中心存储第一实例对应的调用模块的标识、与采用第一机器的标识以及第一实例的监听端口的标识共同标识的第一实例之间的对应关系,同时在管理中心还存储第二实例对应的被调用模块的标识、与采用第二机器的标识以及第二实例的监听端口的标识共同标识的第二实例之间的对应关系;
同理,本实施例中第一机器的标识可以为第一机器的IP地址,第二机器的标识也可以为第二机器的IP地址。
即本实施例中,由于每个机器上部属有多个实例,根据机器的标识如IP地址无法定位到该机器上的某一个实例,因此,该种场景中无法仅采用机器的标识来唯一标识实例。进一步地,每个模块在机器上的实例还具有统一的监听端口标识,因此,该种场景中,可以采用实例部署所在的机器的标识如IP地址和实例的监听端口的标识一起来共同唯一标识一个实例。因此,可以在管理中心存储模块的标识、与采用机器的标识(如IP地址)+监听端口的标识所共同标识的实例之间的对应关系。即在管理中心中存储第一实例对应的调用模块的标识、与第一机器的标识以及第一实例的监听端口的标识的对应关系,以及第二实例对应的被调用模块的标识、与第二机器的标识以及第二实例的监听端口的标识的对应关系。
其中,本实施例的管理中心可以位于该应用的多个模块所部属的任一机器上,以便于本实施例的模块调用关系的挖掘装置可以访问到。
301、挖掘模块调用关系时,使用tcp连接查看工具从第二实例上获取发送信息的第一实例和接收信息的第二实例之间的连接信息;
例如本实施例中,由于第一机器上部署有包括第一实例的多个实例,第二机器上部署有包括第二实例的多个实例,因此,使用ss等tcp连接查看工具在第二实例上获取的连接信息即为连接第二实例的连接信息,此时可以假定连接第二实例的另一端为第一实例。在该连接信息中可以记录有第一实例所部属的第一机器的标识如IP地址以及第一实例的发送信息的发送端口,以及第二实例所部署的第二机器的标识如IP地址以及第二实例的监听信息的监听端口。
302、从连接信息中,获取第一机器的标识和第一实例对应的发送端口的标识、以及第二机器的IP地址和第二实例对应的监听端口的标识;
根据上述获取的连接信息,此时从连接信息中,可以直接获取到第一机器的标识和第一实例对应的发送端口的标识、以及第二机器的标识如IP地址和第二实例对应的监听端口的标识。
303、根据第二机器的标识和第二实例对应的监听端口的标识,获取第二机器中部署的第二实例对应的被调用模块的标识;
本实施例中,采用实例部署的机器的标识如IP地址和实例的监听端口的标识一起来唯一标识一个实例。根据上述步骤300在部署时,在管理中心中存储的信息,可以根据第二机器的标识如IP地址和第二实例对应的监听端口的标识,在管理中心中查询并获取该第二机器的标识和第二实例对应的监听端口的标识所对应的被调用模块的标识。
304、根据第一机器的标识和第一实例对应的发送端口,获取第一机器中部署的第一实例对应的调用模块的标识;
基于以上所述,本实施例中,从连接信息中获取的第一机器的标识如IP地址和第一实例对应的发送端口的标识之后,无法直接根据第一机器的标识如IP地址和第一实例对应的发送端口的标识,从管理中心中查询并获取对应的调用模块的标识。例如,此时该步骤204,具体可以包括如下步骤:
(a)根据第一机器的标识和第一实例对应的发送端口,获取与发送端口同服务于第一实例的监听端口的标识;
(b)根据第一机器的标识和第一实例的监听端口的标识,获取第一机器中部署的第一实例对应的调用模块的标识。
根据上述实施例的记载,可以知道,管理中心存储的是第一实例对应的调用模块的标识、与采用第一机器的标识如IP地址以及第一实例的监听端口的标识共同标识的第一实例之间的对应关系。而根据第一机器的标识如IP地址和第一实例对应的发送端口,从管理中心中无法查询并获取对应的调用模块的标识。此时由于第一机器中部署的第一实例的监听端口和发送端口在第一机器中都会有相应的记录,此时可以根据第一机器的标识如IP地址和第一实例对应的发送端口,从第一机器中获取与发送端口同服务于第一实例的监听端口的标识,这样,便可以获取到第一实例的监听端口的标识。例如,在第一机器中会记录有每一实例的发送端口的标识和监听端口的标识,同时在第一机器中,可以检测并发现哪个监听端口和发送端口服务于同一实例,这样,根据发送端口的标识,或者获取到服务于同一实例的监听端口的标识。
然后,便可以根据第一机器的标识如IP地址和第一实例的监听端口的标识,从管理中心中查询并获取第一机器中部署的第一实例对应的调用模块的标识。
或者,可选地,在其他的应用场景中,也可以在第一实例和第二实例部署时,也可以限定每一个实例的发送端口,这样,在管理中心中还可以记录每一个实例的发送端口的标识、监听端口的标识、所部属的机器的标识如IP地址以及对应的模块的标识。这样,根据连接信息中第一机器的标识如IP地址和第一实例对应的发送端口的标识,便可以直接从管理中心查询并获取到对应的被调用模块的标识。或者也可以采用其他方式根据第一实例和第二实例之间的连接信息,获取调用模块的标识和被调用模块的标识。
305、根据调用模块的标识和被调用模块的标识,生成调用模块与被调用模块的调用关系。
按照上述实施例的方式,可以对应用中的任意两个模块间的调用关系进行挖掘,从而生成该应用的所有模块之间的调用关系,使用非常方便。
本实施例的模块调用关系的挖掘方法,通过采用上述技术方案,可以省去挖掘模块调用关系的人工操作,提高挖掘的模块调用关系的精度,保证模块调用关系的可靠性,而且能够有效地提高模块调用关系的挖掘效率。
下面结合上述实施例的模块调用关系的挖掘方法,介绍本发明的一个应用场景。
图4为本发明提供的一种模块的调用过程示意图。如图4所示,是一种分布式***,其中模块A是模块B的上游,模块A实际部署有3个实例,分别为实例A1、实例A2和实例A3,模块B实际部署有3个实例,分别为实例B1、实例B2和实例B3,模块A中的每个实例都监听了8081端口,模块B中的每个实例都监听了8081端口。实际调用过程是模块A中的一个实例与模块B中的其中一个实例的8080端口建立连接,发送数据请求,然后接收返回数据。
对应地,在管理中心存储的数据类似于如下表1所示:
其中部署机器的标识具体可以为部署机器的IP地址,用于唯一标识部署的机器。
当每个机器上都只部署有一个模块的一个实例,即模块独立部署,此时相对比较容易解决,部署时,在管理中心中可以记录有每个机器部署的唯一一个模块的标识,具体可以存储该机器的标识如IP地址与模块的标识之间的对应关系。图5为本发明提供的另一种模块的调用过程示意图。如图5所示,实例A1单独部署在机器a上,实例B1单独部署在机器b上。具体地,挖掘图5所示的模块调用关系时,具体可以采用上述图2所示实施例的模块调用关系的挖掘方法,在机器b上收集连接建立情况,即可看到机器a的53652端口与机器b的8080端口建立有一个连接;然后根据连接信息可以获取到机器a的标识如IP地址和机器b的标识如IP地址。此时根据机器a的IP地址,可以从管理中心中查询到机器a中部署有模块A的实例A1,并且可以查询机器b上部署的是模块B的实例B1,这样便挖掘到模块A调用了模块B。
更复杂的情况是,大部分模块混合部署在同一台机器,即多个模块部署在同一机器。如图6所示,为本发明提供的再一种模块的调用过程示意图。如图机6所示,机器a和机器b上部署有多个实例,具体地,挖掘图6所示的模块调用关系时,具体可以采用上述图3所示实施例的模块调用关系的挖掘方法,在机器b上收集连接建立情况。当收集到机器a的53652端口与机器b的8080端口连接时,需要首先确定机器b上实际被连接的实例,从连接信息中可以获取到机器a的标识如IP地址和实例A1的发送端口53652,机器b的标识如IP地址和实例B1的监听端口8080,这样,使用机器b的标识和8080端口(IP地址+port标识)信息,从管理中心可以查询到该连接的下游是实例B1,并且可以知道该实例数据模块B。
上游来自于机器a的53652端口,该端口是发起连接的发送端口,随着每次与下游建立的连接随机打开的,无法根据这个信息直接得到所属模块。因此,可以在上游的机器中收集了连接与进程pid的对应关系,利用这个信息53652端口所属的进程pid,并且又据此可以知道该进程pid监听了8081端口,即可以得知监听端口8081和发送端口53652服务于同一实例,从而可以获取到与发送端口服务于同一实例的监听端口的标识。然后使用机器a的标识和8081端口(即IP地址+port标识)信息,从管理中心就可以查询到这个连接的上游是实例A1,并且知道实例A1对应的是模块A,从而得知实例模块A调用模块B。
采用上述实施例的技术方案,能够有效地提高模块调用关系的挖掘效率。
图7为本发明的模块调用关系的挖掘装置实施例一的结构图。如图7所示,本实施例的模块调用关系的挖掘装置,具体可以包括:
连接信息获取模块10用于获取发送信息的第一实例和接收信息的第二实例之间的连接信息;第一实例为调用模块部署在第一机器上的实例,第二实例为被调用模块部署在第二机器上的实例;
模块信息获取模块11用于根据连接信息获取模块10获取的连接信息,获取调用模块的标识和被调用模块的标识;
调用关系生成模块12用于根据模块信息获取模块11获取的调用模块的标识和被调用模块的标识,生成调用模块与被调用模块的调用关系。
本实施例的模块调用关系的挖掘装置,通过采用上述模块实现模块调用关系的挖掘的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图8为本发明的模块调用关系的挖掘装置实施例二的结构图。如图8所示,本实施例的模块调用关系的挖掘装置,在上述图7所示实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。
本实施例的模块调用关系的挖掘装置中,当第一机器上仅部署第一实例,第二机器上仅部署第二实例时,模块信息获取模块11具体用于:
从连接信息获取模块10获取的连接信息中,获取第一机器的标识以及第二机器的标识;
根据第一机器的标识,从管理中心获取第一机器中部署的第一实例对应的调用模块的标识;
根据第二机器的标识,从管理中心获取第二机器中部署的第二实例对应的被调用模块的标识。
进一步可选地,如图8所示,本实施例的模块调用关系的挖掘装置中,还包括存储模块13。
其中存储模块13用于在第一实例部署时,在管理中心中存储第一实例对应的调用模块的标识与第一机器的标识之间的对应关系;
存储模块13还用于在第二实例部署时,在管理中心中存储第二实例对应的被调用模块的标识与第二机器的标识之间的对应关系。
此时对应地,模块信息获取模块11具体用于根据第一机器的标识,从存储模块13存储处理后的管理中心获取第一机器中部署的第一实例对应的调用模块的标识。
模块信息获取模块11具体还用于根据第二机器的标识,从存储模块13存储处理后的管理中心获取第二机器中部署的第二实例对应的被调用模块的标识。
或者可选地,当第一机器上部署有包括第一实例的多个实例,第二机器上部署有包括第二实例的多个实例时,本实施例的模块调用关系的挖掘装置中,模块信息获取模块11具体用于:
从连接信息获取模块10获取的连接信息中,获取第一机器的标识和第一实例对应的发送端口的标识、以及第二机器的标识和第二实例对应的监听端口的标识;
根据第二机器的标识和第二实例对应的监听端口的标识,从管理中心中获取第二机器中部署的第二实例对应的被调用模块的标识;
根据第一机器的标识和第一实例对应的发送端口,获取第一机器中部署的第一实例对应的调用模块的标识。
进一步可选地,模块信息获取模块11具体用于:
根据第一机器的标识和第一实例对应的发送端口,从第一机器获取与发送端口同服务于第一实例的监听端口的标识;
根据第一机器的标识和第一实例的监听端口的标识,从管理中心获取第一机器中部署的第一实例对应的调用模块的标识。
进一步可选地,此时对应的存储模块13具体用于在第一实例部署时,在管理中心中存储第一实例对应的调用模块的标识、与采用第一机器的标识以及第一实例的监听端口的标识共同标识的第一实例之间的对应关系;
存储模块13具体还用于在第二实例部署时,在管理中心中存储第二实例对应的被调用模块的标识、与采用第二机器的标识以及第二实例的监听端口的标识共同标识的第二实例之间的对应关系。
即对应地,此时,模块信息获取模块11具体用于根据第二机器的标识和第二实例对应的监听端口的标识,从存储模块13存储处理后的管理中心中获取第二机器中部署的第二实例对应的被调用模块的标识;
模块信息获取模块11具体还用于根据第一机器的标识和第一实例的监听端口的标识,从存储模块13存储处理后的管理中心获取第一机器中部署的第一实例对应的调用模块的标识。
进一步可选地,本实施例的模块调用关系的挖掘装置中,连接信息获取模块10具体用于在第二实例中使用连接查看工具,获取第一实例和第二实例之间的连接信息。
本实施例的模块调用关系的挖掘装置,通过采用上述模块实现模块调用关系的挖掘的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图9为本发明的计算机设备实施例的结构图。如图9所示,本实施例的计算机设备,包括:一个或多个处理器30,以及存储器40,存储器40用于存储一个或多个程序。例如本实施例的存储器40可以存储在应用的多个模块中任一模块部属的机器上,也可以分布式存储在应用的模块部属的多个机器上。一个或者多个处理器可以访问应用的多个模块部属的多个机器,实现当存储器40中存储的一个或多个程序被一个或多个处理器30执行,使得一个或多个处理器30实现如上图1-图6所示实施例的模块调用关系的挖掘方法。图9所示实施例中以包括多个处理器30为例。
例如,图10为本发明提供的一种计算机设备的示例图。图10示出了适于用来实现本发明实施方式的示例性计算机设备12a的框图。图10显示的计算机设备12a仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,计算机设备12a以通用计算设备的形式表现。计算机设备12a的组件可以包括但不限于:一个或者多个处理器16a,***存储器28a,连接不同***组件(包括***存储器28a和处理器16a)的总线18a。
总线18a表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机设备12a典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机设备12a访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28a可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30a和/或高速缓存存储器32a。计算机设备12a可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34a可以用于读写不可移动的、非易失性磁介质(图10未显示,通常称为“硬盘驱动器”)。尽管图10中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18a相连。***存储器28a可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图1-图8各实施例的功能。
具有一组(至少一个)程序模块42a的程序/实用工具40a,可以存储在例如***存储器28a中,这样的程序模块42a包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42a通常执行本发明所描述的上述图1-图8各实施例中的功能和/或方法。
计算机设备12a也可以与一个或多个外部设备14a(例如键盘、指向设备、显示器24a等)通信,还可与一个或者多个使得用户能与该计算机设备12a交互的设备通信,和/或与使得该计算机设备12a能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22a进行。并且,计算机设备12a还可以通过网络适配器20a与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20a通过总线18a与计算机设备12a的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12a使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理器16a通过运行存储在***存储器28a中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的模块调用关系的挖掘方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所示的模块调用关系的挖掘方法。
本实施例的计算机可读介质可以包括上述图10所示实施例中的***存储器28a中的RAM30a、和/或高速缓存存储器32a、和/或存储***34a。
随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。
本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (16)
1.一种模块调用关系的挖掘方法,其特征在于,所述方法包括:
获取发送信息的第一实例和接收信息的第二实例之间的连接信息;所述第一实例为调用模块部署在第一机器上的实例,所述第二实例为被调用模块部署在第二机器上的实例;
根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识,所述调用模块的标识根据所述第一实例的标识以及所述调用模块的标识与所述第一实例的标识的对应关系确定,所述被调用模块的标识根据所述第二实例的标识以及所述被调用模块的标识与所述第二实例的标识的对应关系确定,所述第一实例的标识基于所述第一实例的监听端口的标识和所述第一机器的标识确定,所述第二实例的标识基于所述第二实例的监听端口的标识和所述第二机器的标识确定,当所述第一机器上部署有包括所述第一实例的多个实例,所述第一实例的监听端口的标识根据所述第一实例的随机打开的发送端口的标识确定,所述发送端口的标识、所述第一机器的标识、所述第二实例的监听端口的标识和所述第二机器的标识从所述连接信息中获取;
根据所述调用模块的标识和所述被调用模块的标识,生成所述调用模块与所述被调用模块的调用关系。
2.根据权利要求1所述的方法,其特征在于,当所述第一机器上仅部署所述第一实例,所述第二机器上仅部署所述第二实例时,根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识,具体包括:
从所述连接信息中,获取所述第一机器的标识以及所述第二机器的标识;
根据所述第一机器的标识,从管理中心获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识;
根据所述第二机器的标识,从所述管理中心获取所述第二机器中部署的所述第二实例对应的所述被调用模块的标识。
3.根据权利要求2所述的方法,其特征在于,根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识之前,所述方法还包括:
在所述第一实例部署时,在所述管理中心中存储所述第一实例对应的所述调用模块的标识与所述第一机器的标识之间的对应关系;
在所述第二实例部署时,在所述管理中心中存储所述第二实例对应的所述被调用模块的标识与所述第二机器的标识之间的对应关系。
4.根据权利要求1所述的方法,其特征在于,当所述第一机器上部署有包括所述第一实例的多个实例,所述第二机器上部署有包括所述第二实例的多个实例时,根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识,具体包括:
从所述连接信息中,获取所述第一机器的标识和所述第一实例对应的发送端口的标识、以及所述第二机器的标识和所述第二实例对应的监听端口的标识;
根据所述第二机器的标识和所述第二实例对应的监听端口的标识,从管理中心获取所述第二机器中部署的所述第二实例对应的所述被调用模块的标识;
根据所述第一机器的标识和所述第一实例对应的发送端口,获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识。
5.根据权利要求4所述的方法,其特征在于,根据所述第一机器的标识和所述第一实例对应的发送端口,获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识,具体包括:
根据所述第一机器的标识和所述第一实例对应的发送端口,从所述第一机器获取与所述发送端口同服务于所述第一实例的监听端口的标识;
根据所述第一机器的标识和所述第一实例的监听端口的标识,从所述管理中心获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识。
6.根据权利要求5所述的方法,其特征在于,根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识之前,所述方法还包括:
在所述第一实例部署时,在所述管理中心中存储所述第一实例对应的所述调用模块的标识、与采用所述第一机器的标识以及所述第一实例的监听端口的标识共同标识的所述第一实例之间的对应关系;
在所述第二实例部署时,在所述管理中心中存储所述第二实例对应的所述被调用模块的标识、与采用所述第二机器的标识以及所述第二实例的监听端口的标识共同标识的所述第二实例之间的对应关系。
7.根据权利要求1-6任一所述的方法,其特征在于,获取发送信息的第一实例和接收信息的第二实例之间的连接信息,具体包括:
在所述第二实例中使用连接查看工具,获取所述第一实例和所述第二实例之间的所述连接信息。
8.一种模块调用关系的挖掘装置,其特征在于,所述装置包括:
连接信息获取模块,用于获取发送信息的第一实例和接收信息的第二实例之间的连接信息;所述第一实例为调用模块部署在第一机器上的实例,所述第二实例为被调用模块部署在第二机器上的实例;
模块信息获取模块,用于根据所述连接信息,获取所述调用模块的标识和所述被调用模块的标识,所述调用模块的标识根据所述第一实例的标识以及所述调用模块的标识与所述第一实例的标识的对应关系确定,所述被调用模块的标识根据所述第二实例的标识以及所述被调用模块的标识与所述第二实例的标识的对应关系确定,所述第一实例的标识基于所述第一实例的监听端口的标识和所述第一机器的标识确定,所述第二实例的标识基于所述第二实例的监听端口的标识和所述第二机器的标识确定,当所述第一机器上部署有包括所述第一实例的多个实例,所述第一实例的监听端口的标识根据所述第一实例的随机打开的发送端口的标识确定,所述发送端口的标识、所述第一机器的标识、所述第二实例的监听端口的标识和所述第二机器的标识从所述连接信息中获取;
调用关系生成模块,用于根据所述调用模块的标识和所述被调用模块的标识,生成所述调用模块与所述被调用模块的调用关系。
9.根据权利要求8所述的装置,其特征在于,所述模块信息获取模块,具体用于:
当所述第一机器上仅部署所述第一实例,所述第二机器上仅部署所述第二实例时,从所述连接信息中,获取所述第一机器的标识以及所述第二机器的标识;
根据所述第一机器的标识,从管理中心获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识;
根据所述第二机器的标识,从所述管理中心获取所述第二机器中部署的所述第二实例对应的所述被调用模块的标识。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
存储模块,用于在所述第一实例部署时,在所述管理中心中存储所述第一实例对应的所述调用模块的标识与所述第一机器的标识之间的对应关系;
所述存储模块,还用于在所述第二实例部署时,在所述管理中心中存储所述第二实例对应的所述被调用模块的标识与所述第二机器的标识之间的对应关系。
11.根据权利要求10所述的装置,其特征在于,所述模块信息获取模块,具体用于:
当所述第一机器上部署有包括所述第一实例的多个实例,所述第二机器上部署有包括所述第二实例的多个实例时,从所述连接信息中,获取所述第一机器的标识和所述第一实例对应的发送端口的标识、以及所述第二机器的标识和所述第二实例对应的监听端口的标识;
根据所述第二机器的标识和所述第二实例对应的监听端口的标识,从管理中心获取所述第二机器中部署的所述第二实例对应的所述被调用模块的标识;
根据所述第一机器的标识和所述第一实例对应的发送端口,获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识。
12.根据权利要求11所述的装置,其特征在于,所述模块信息获取模块,具体用于:
根据所述第一机器的标识和所述第一实例对应的发送端口,从所述第一机器获取与所述发送端口同服务于所述第一实例的监听端口的标识;
根据所述第一机器的标识和所述第一实例的监听端口的标识,从所述管理中心获取所述第一机器中部署的所述第一实例对应的所述调用模块的标识。
13.根据权利要求12所述的装置,其特征在于,所述存储模块,具体用于在所述第一实例部署时,在所述管理中心中存储所述第一实例对应的所述调用模块的标识、与采用所述第一机器的标识以及所述第一实例的监听端口的标识共同标识的所述第一实例之间的对应关系;
所述存储模块,具体还用于在所述第二实例部署时,在所述管理中心中存储所述第二实例对应的所述被调用模块的标识、与采用所述第二机器的标识以及所述第二实例的监听端口的标识共同标识的所述第二实例之间的对应关系。
14.根据权利要求8-13任一所述的装置,其特征在于,所述连接信息获取模块,具体用于在所述第二实例中使用连接查看工具,获取所述第一实例和所述第二实例之间的所述连接信息。
15.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711017603.2A CN107861821B (zh) | 2017-10-26 | 2017-10-26 | 模块调用关系的挖掘方法、装置及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711017603.2A CN107861821B (zh) | 2017-10-26 | 2017-10-26 | 模块调用关系的挖掘方法、装置及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107861821A CN107861821A (zh) | 2018-03-30 |
CN107861821B true CN107861821B (zh) | 2022-02-25 |
Family
ID=61697985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711017603.2A Active CN107861821B (zh) | 2017-10-26 | 2017-10-26 | 模块调用关系的挖掘方法、装置及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107861821B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489163B (zh) * | 2018-05-15 | 2021-10-19 | 北京三快在线科技有限公司 | 远程过程调用的识别方法、装置、设备及存储介质 |
CN109582650B (zh) * | 2018-11-09 | 2021-05-25 | 金色熊猫有限公司 | 模块调用量处理方法、装置、电子设备、存储介质 |
CN109861846A (zh) * | 2018-12-25 | 2019-06-07 | 顺丰科技有限公司 | 应用调用关系获取方法、***及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133309A (zh) * | 2017-04-28 | 2017-09-05 | 东软集团股份有限公司 | 流程实例的存储、查询方法及装置、存储介质及电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7095747B2 (en) * | 2001-03-28 | 2006-08-22 | Siemens Communications, Inc. | Method and apparatus for a messaging protocol within a distributed telecommunications architecture |
US7760712B2 (en) * | 2006-08-11 | 2010-07-20 | Research In Motion Limited | System and method for managing call continuity in IMS network environment |
US8817952B2 (en) * | 2012-12-13 | 2014-08-26 | Avaya Inc. | Method, apparatus, and system for providing real-time PSAP call analysis |
CN105207806A (zh) * | 2015-08-20 | 2015-12-30 | 百度在线网络技术(北京)有限公司 | 分布式服务的监控方法及装置 |
EP3226493B1 (en) * | 2015-12-21 | 2020-03-25 | Huawei Technologies Co., Ltd. | Method, device, and system for discovering the relationship of applied topology |
CN105740133B (zh) * | 2016-01-29 | 2018-06-29 | 浙江大学 | 一种基于服务调用拓扑的分布式应用性能监控方法 |
CN106469093A (zh) * | 2016-09-05 | 2017-03-01 | 用友优普信息技术有限公司 | 数据调用方法和数据调用装置 |
CN107092553A (zh) * | 2017-04-20 | 2017-08-25 | 广州华多网络科技有限公司 | 一种建立进程间请求调用链的方法、装置及计算机*** |
-
2017
- 2017-10-26 CN CN201711017603.2A patent/CN107861821B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133309A (zh) * | 2017-04-28 | 2017-09-05 | 东软集团股份有限公司 | 流程实例的存储、查询方法及装置、存储介质及电子设备 |
Non-Patent Citations (3)
Title |
---|
EPA网络拓扑发现算法的研究与实现;王浩等;《仪器仪表学报》;(同一句:调用、拓扑)AND(同一段:端口、模块);20110630;第32卷(第6期);全文 * |
Experimental Investigation of a Self-Biased Microstrip Circulator;Benton K. O"Neil ET AL;《 IEEE Transactions on Microwave Theory and Techniques ( Volume: 57, Issue: 7, July 2009)》;invoke relationship port;20090527;全文 * |
Web日志数据挖掘中数据预处理模型的研究与建立;赵莹莹等;《现代电子技术》;20070225(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107861821A (zh) | 2018-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109660397B (zh) | 用于采集日志的***、方法和装置 | |
US10055334B2 (en) | Debugging through causality and temporal patterning in an event processing system | |
CN108768730B (zh) | 用于操作智能网卡的方法和装置 | |
CN111752799A (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
US8683268B2 (en) | Key based cluster log coalescing | |
CN109672722B (zh) | 数据部署方法及装置、计算机存储介质和电子设备 | |
CN107861821B (zh) | 模块调用关系的挖掘方法、装置及计算机可读介质 | |
US9948524B2 (en) | Network element diagnostic evaluation | |
CN112738791A (zh) | 基于5g核心网的用户信息关联回填方法、装置、设备和介质 | |
CN110806931A (zh) | 分布式服务的调用链路跟踪实现方法、装置及电子设备 | |
CN109271358A (zh) | 数据汇总方法、查询方法、装置、设备及存储介质 | |
CN112333044B (zh) | 分流设备性能测试方法、装置、***、电子设备以及介质 | |
US10282120B2 (en) | Method, apparatus and system for inserting disk | |
US10613922B2 (en) | Synchronously generating diagnostic data | |
CN113704790A (zh) | 一种异常日志信息汇总方法及计算机设备 | |
CN111182251B (zh) | 一种应用于网上巡查同步转码且存储介质可热插拔的录像备份方法和装置 | |
CN112769876B (zh) | 一种设备通道信息获取方法、装置、设备和介质 | |
CN108874441A (zh) | 一种板卡配置方法、装置、服务器和存储介质 | |
CN114356521A (zh) | 任务调度方法、装置、电子设备及存储介质 | |
CN111625532A (zh) | 数据血缘关系处理方法、装置、计算机设备及存储介质 | |
CN112445861B (zh) | 信息处理方法、装置、***及存储介质 | |
CN110096543B (zh) | 应用程序的数据操作方法、装置、服务器和介质 | |
CN112187509A (zh) | 多架构云平台执行日志管理方法、***、终端及存储介质 | |
CN109388917B (zh) | 硬件设备的鉴权方法、装置、设备及存储介质 | |
US11785115B2 (en) | Request tracing |
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 |