CN110391945B - 一种拓扑信息收集方法及装置 - Google Patents
一种拓扑信息收集方法及装置 Download PDFInfo
- Publication number
- CN110391945B CN110391945B CN201910722491.3A CN201910722491A CN110391945B CN 110391945 B CN110391945 B CN 110391945B CN 201910722491 A CN201910722491 A CN 201910722491A CN 110391945 B CN110391945 B CN 110391945B
- Authority
- CN
- China
- Prior art keywords
- network device
- bidirectional flow
- network
- detection
- topology information
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种拓扑信息收集方法及装置,所述方法包括:向所述第一网络设备发送检测请求报文,所述检测请求报文用于指示所述第一网络设备对所述第一双向流的有效状态进行检测;当接收到所述第一网络设备发送的检测应答报文时,获取所述检测应答报文中包括的检测结果;当根据所述检测结果确定所述第一双向流为无效状态时,与第二网络设备建立gRPC连接,并与所述第二网络设备创建第二双向流,通过所述第二双向流从所述第二网络设备中收集拓扑信息;其中,所述第二网络设备与所述第一网络设备具有相同的拓扑信息。应用本发明实施例可以提高拓扑收集的可靠性。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种拓扑信息收集方法及装置。
背景技术
谷歌远程过程调用gRPC(一种开源远程过程调用框架,英文:Google RemoteProcedure Call,简称:gRPC)是一种基于超文本传输协议2.0(英文: Hypertext TransferProtocol 2.0,简称:HTTP2)协议设计的,高性能、跨语言的远程过程调用框架。gRPC具有客户端和服务端两种角色。
支持gRPC的网络设备,作为gRPC的服务端运行,给客户端提供RPC 接口服务,供客户端调用来获取网络拓扑信息。
支持gRPC的控制器,作为gRPC的客户端运行,主动与网络设备建立 gRPC连接。gRPC连接建立后,控制器调用网络设备提供的双向流式RPC 接口,创建一条双向流,通过该双向流来获取网络设备上的拓扑信息。此外,当网络拓扑信息发生改变时,网络设备也通过这条双向流,将拓扑变化通知给控制器,触发控制器更新网络拓扑,其组网示意图可以如图1所示。
然而实践发现,在目前的gRPC实现方案中,当网络设备的拓扑上报模块出现异常而终止运行,或,网络设备的拓扑上报模块仍在运行,但处于异常状态而无法与gRPC服务端通信时,控制器的拓扑收集模块无法感知网络设备的拓扑上报模块出现故障,使得控制器无法再收集网络拓扑。
发明内容
有鉴于此,本发明提供一种拓扑信息收集方法及装置,以解决现有技术中控制器的拓扑收集模块无法感知网络设备的拓扑上报模块出现故障的问题。
第一方面,本发明提供一种拓扑信息收集方法,应用于作为gRPC的客户端的控制器,所述控制器与作为gRPC的服务端的第一网络设备之间创建有第一双向流,所述方法包括:
向所述第一网络设备发送检测请求报文,所述检测请求报文用于指示所述第一网络设备对所述第一双向流的有效状态进行检测;
当接收到所述第一网络设备发送的检测应答报文时,获取所述检测应答报文中包括的检测结果;
当根据所述检测结果确定所述第一双向流为无效状态时,与第二网络设备建立gRPC连接,并与所述第二网络设备创建第二双向流,通过所述第二双向流从所述第二网络设备中收集拓扑信息;其中,所述第二网络设备与所述第一网络设备具有相同的拓扑信息。
第二方面,本发明提供一种拓扑信息收集装置,应用于作为gRPC的客户端的控制器,所述控制器与作为gRPC的服务端的第一网络设备之间创建有第一双向流,所述装置包括:
发送单元,用于向所述第一网络设备发送检测请求报文,所述检测请求报文用于指示所述第一网络设备对所述第一双向流的有效状态进行检测;
接收单元,用于接收第一网络设备发送的检测应答报文;
获取单元,用于当所述接收单元接收到所述第一网络设备发送的检测应答报文时,获取所述检测应答报文中包括的检测结果;
确定单元,用于根据所述检测结果确定所述第一双向流为有效状态或无效状态;
建立单元,用于当所述确定单元确定所述第一双向流为无效状态时,与第二网络设备建立gRPC连接,并与所述第二网络设备创建第二双向流;其中,所述第二网络设备与所述第一网络设备具有相同的拓扑信息;
收集单元,用于通过所述第二双向流从所述第二网络设备中收集拓扑信息。
第三方面,本发明提供一种拓扑信息收集装置,包括处理器、机器可读存储介质和通信总线,其中,处理器和机器可读存储介质通过通信总线完成相互间的通信;
机器可读存储介质,用于存放计算机程序;
处理器,用于执行机器可读存储介质上所存放的程序时,实现上述拓扑信息收集方法。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述拓扑信息收集方法。
因此,应用本发明公开的技术方案,通过控制器向第一网络设备发送检测请求报文,并根据接收到的第一网络设备发送的检测应答报文中包括的检测结果确定第一双向流的有效性;当确定第一双向流为无效状态时,控制器与第二网络设备建立gRPC连接,并与第二网络设备创建第二双向流,通过第二双向流从第二网络设备中收集拓扑信息,保证了网络设备中拓扑上报模块故障时,控制器可以及时检测到该故障,并进行故障切换,提高拓扑收集的可靠性。
附图说明
图1是本发明实施例提供的一种拓扑信息收集方法的流程示意图;
图2是本发明实施例提供的一种具体应用场景下的架构示意图;
图3是本发明实施例提供的一种拓扑信息收集方法的流程示意图;
图4是本发明实施例提供的一种拓扑信息收集装置的结构示意图;
图5是本发明实施例提供的另一种拓扑信息收集装置的结构示意图;
图6是本发明实施例提供的一种拓扑信息收集装置的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,为本发明实施例提供的一种拓扑信息收集方法的流程示意图,其中,该拓扑信息收集方法可以应用于作为gRPC的客户端的控制器(下文中简称为控制器),该控制器与作为gRPC的服务端的网络设备(本文中称为第一网络设备)之间创建有双向流(本文中称为第一双向流),如图1所示,该拓扑信息收集方法可以包括以下步骤:
步骤101、向第一网络设备发送检测请求报文,该检测请求报文用于指示第一网络设备对第一双向流的有效状态进行检测。
本发明实施例中,控制器可以主动发起针对第一双向流的有效状态的检测,以便能及时获知第一双向流的有效状态,保证拓扑收集的可靠性。
本发明实施例中,当需要检测第一双向流的有效性时,控制器向第一网络设备发送检测请求报文,该检测请求报文用于指示第一网络设备对第一双向流的有效状态进行检测。
第一网络设备接收到该检测请求报文时,对第一双向流的有效状态进行检测,并向控制器发送包括检测结果的检测应答报文。
示例性的,第一网络设备可以通过检测本地与第一双向流对应的线程(本文中称为第一目标线程)的状态,确定第一双向流的有效状态。
在一个示例中,当第一网络设备检测到目标线程存在,且能正常提供服务时,确定第一双向流为有效状态;当第一网络设备检测到目标线程存在,但无法提供服务,或者,目标线程不存在时,确定第一双向流为无效状态。
例如,当第一网络设备检测到目标线程存在时,可以进一步检测目标线程的读缓存和写缓存,当目标线程对应的读缓存或/和写缓存无可用空间时,确定目标线程无法提供服务。
步骤102、当接收到第一网络设备发送的检测应答报文时,获取该检测应答报文中包括的检测结果。
本发明实施例中,当控制器接收到第一网络设备发送的检测应答报文时,控制器获取该应答报文中包括的检测结果,并根据该检测结果确定第一双向流为有效状态或无效状态。
步骤103、当根据该检测结果确定第一双向流为无效状态时,与第二网络设备建立gRPC连接,并与第二网络设备创建第二双向流,通过第二双向流从第二网络设备中收集拓扑信息;其中,第二网络设备与第一网络设备具有相同的拓扑信息。
本发明实施例中,为了保证拓扑收集的可靠性,组网中可以部署多台用于收集拓扑信息的网络设备,该多台用于收集信息的网络设备之间通过信息同步方式保证各网络设备之间具有相同的拓扑信息。
相应地,当控制器根据接收到的检测应答报文中包括的检测结果确定第一双向流为无效状态时,控制器可以尝试从其他与第一网络设备具有相同拓扑信息的网络设备(本文中称为第二网络设备)中收集拓扑信息。
本发明实施例中,为了实现从第二网络设备中收集拓扑信息,控制器与第二网络设备建立gRPC连接,并在gRPC连接建立成功时,与第二网络设备创建双向流(本文中称为第二双向流),通过该第二双向流从第二网络设备中收集拓扑信息。
可见,在图1所示方法流程中,控制器主动向建立有双向流的网络设备发送检测请求报文,以确定第一双向流的状态为有效状态或无效状态,并在确定第一双向流为无效状态时,与另一具有相同拓扑信息的网络设备建立 gRPC连接,并创建第二双向流,进而通过该第二双向流从该网络设备中收集拓扑信息,由于网络设备的拓扑上报模块故障时会导致网络设备的双向流无效,因此,上述方案可以保证网络设备的拓扑上报模块故障时,控制器能够检测到该故障,并在检测到故障时,进行故障切换,从其他网络设备中收集拓扑信息,提高了拓扑收集的可靠性。
可选地,在本发明其中一个实施例中,上述向第一网络设备发送检测请求报文,可以包括:
周期性地向第一网络设备发送检测请求报文。
在该实施例中,控制器可以周期性地向第一网络设备发送检测请求报文,以检测第一双向流的状态为有效状态或无效状态;若第一双向流为有效状态,则保持定时发送检测请求报文;若第一双向流为无效状态,则停止针对第一双向流的检测请求报文的发送。
举例来说,控制器与第一网络设备创建第一双向流后可以启动一个定时器(超时时长可以根据实际场景设定),当定时器超时时,控制器向第一网络设备发送检测请求报文,以检测第一双向流的状态为有效状态或无效状态;若为有效状态,则重置定时器(将时间清零后重新启动),并当定时器超时时再次发送检测请求报文;若为无效状态,则停止定时器。
可选地,在本发明另一个实施例中,上述向第一网络设备发送检测请求报文,可以包括:
当目标时间达到预设时间阈值时,向所述第一网络设备发送检测请求报文;其中,所述目标时间为未通过所述第一双向流接收到所述第一网络设备发送的拓扑信息的持续时间,当通过所述第一双向流接收到所述第一网络设备发送的拓扑信息,或,确定所述第一双向流为有效状态时,将所述目标时间清零,并重置。
在该实施例中,考虑到控制器通过第一双向流接收到第一网络设备发送的拓扑信息时,可以确定该第一双向流为有效状态,因此,为了节省系统和网络资源,控制器可以在未接收到第一网络设备通过第一双向流发送的拓扑信息的情况下,发起针对第一双向流的状态检测。
相应地,控制器与第一网络设备创建第一双向流之后,可以统计未通过第一双向流接收到第一网络设备发送的拓扑信息的持续时间(本文中称为目标时间,当控制器通过第一双向流接收到第一网络设备发送的拓扑信息时,该目标时间清零),并当该时间达到预设时间阈值时,控制器可以向第一网络设备发送检测请求报文,以确定第一双向流的状态为有效状态或无效状态,并当确定第一双向流为有效状态时,将目标时间清零,并重置(即重新统计目标时间);当确定第一双向流为无效状态时,停止向第一网络设备发送检测请求报文。
可选地,在本发明其中一个实施例中,上述检测应答报文中包括的检测结果包括:第一值或第二值;
其中,第一值表明目标线程为正常状态,第二值表明目标线程为异常状态,目标线程为第一网络设备中与第一双向流对应的线程。
相应地,上述根据检测结果确定第一双向流为无效状态,可以包括:
当检测结果为第二值时,确定第一双向流为无效状态。
在该实施例中,当第一网络设备接收到检测请求报文时,第一网络设备可以检测本地与第一双向流对应的线程(本文中称为目标线程)的状态。
当第一网络设备检测到目标线程存在,且能正常提供服务时,确定目标线程为正常状态,此时,第一网络设备向控制器发送的检测应答报文中包括的检测结果为第一值。
当第一网络设备检测到目标线程存在,但无法提供服务,或者,目标线程不存在时,确定目标线程为异常状态,此时,第一网络设备向控制器发送的检测应答报文中包括的检测结果为第二值。
在该实施例中,控制器接收到第一网络设备发送的检测应答报文时,获取该检测应答报文中包括的检测结果。当该检测结果为第一值时,控制器确定第一双向流为有效状态;当该检测结果为第二值时,控制器确定第一双向流为无效状态。
需要说明的是,在本发明实施例中,对于目标线程异常的情况,还可以进一步根据异常原因是否明确,将检测结果设置为不同值。例如,当第一网络设备确定目标线程为异常状态,且能够确定导致目标线程异常的原因时,第一网络设备向控制器发送的检测应答报文中包括的检测结果可以为上述第二值;当第一网络设备确定目标线程为异常状态,但无法确定导致目标线程异常的原因时,第一网络设备向控制器发送的检测应答报文中包括的检测结果可以为上述第三值。在该情况下,当控制器获取到的检测结果为第二值或第三值时,确定第一双向流为无效状态。
可选地,在本发明其中一个实施例中,上述向第一网络设备发送检测请求报文之后,还可以包括:
当未在预设时间内接收到第一网络设备发送的检测应答报文时,确定第一双向流为无效状态,并执行上述与第二网络设备建立gRPC连接的步骤。
在该实施例中,当控制器未在预设时间内接收到第一网络设备发送的检测应答报文时,控制器可以确定与第一网络设备之间的gRPC连接出现异常,此时,控制器确定第一双向流为无效状态,并按照上述实施例中描述的方式进行与第二网络设备建立gRPC连接等处理。
可选地,在本发明其中一个实施例中,上述与第二网络设备建立gRPC 连接,可以包括:
当存在多个候选第二网络设备时,根据第一网络设备以及各候选第二网络设备的编号,以预设顺序轮询各候选第二网络设备,选择一个候选第二网络作为第二网络设备;其中,被选中的候选第二网络设备为该预设顺序中第一网络设备的后一设备,该预设顺序为编号从大到小的顺序,或,编号从小到大的顺序;
与第二网络设备建立gRPC连接。
在该实施例中,当控制器确定第一双向流为无效状态,且组网中存在多个与第一网络设备具有相同拓扑信息的网络设备(本文中称为候选第二网络设备)时,控制器可以从该多个候选第二网络设备中选择一个候选第二网络设备作为第二网络设备。
示例性的,控制器可以根据第一网络设备以及各候选第二网络设备的编号,以预设顺序轮询各候选第二网络设备,选择一个候选第二网络设备作为第二网络设备。
举例来说,以预设顺序为编号从小到大的顺序为例,假设各网络设备(包括第一网络设备以及各候选设备)的编号为1~N(即共N个网络设备,编号连续且互不相同),第一网络设备的编号为K(1≤K≤N),则当1≤K<N时,选择编号为K+1的候选第二网络设备作为第二网络设备;当K=N时,选择编号为1的候选第二网络设备作为第二网络设备。
在该实施例中,控制器确定第二网络设备之后,可以与第二网络设备建立gRPC连接,并在gRPC连接建立成功时,与第二网络设备创建第二双向流,并通过第二双向流从第二网络设备中收集拓扑信息。
需要说明的是,在本发明实施例中,第一网络设备和第二网络设备可以理解为网络设备的角色,第一网络设备指当前与控制器之间创建有双向流的网络设备,第二网络设备是指当前的第一网络设备与控制器之间的双向流为无效状态时,与控制器之间创建双向流的网络设备;当第二网络设备成功与控制器之间创建了新的双向流之后,该第二网络设备可以视为新的第一网络设备。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体实例对本发明实施例提供的技术方案进行说明。
请参见图2,为本发明实施例提供的一种拓扑信息收集组网的架构示意图,如图2所示,该组网中包括作为gRPC客户端的控制器以及多台网络设备(网络设备1、网络设备2和网络设备3),该多台网络设备之间通过开放路由(英文:Open Routing,简称:OpenR)协议保持拓扑信息一致。
在该实施例中,拓扑信息收集实现流程可以如图3所示,其可以包括以下步骤:
1、控制器与网络设备N(即上述第一网络设备)成功建立gRPC连接;
其中,N表示设备编号,它的取值为区间[0,M-1]的整数,其中M表示设备总数。
在该实施例中,M=3。
2、控制器与网络设备N创建双向流(即上述第一双向流)。
在该实施例中,控制器与网络设备N创建双向流,等候网络设备N异步上报拓扑消息。
其中,控制器与网络设备创建双向流时可以通过异步调用RPC syncTopo (同步拓扑)的方式创建,即不需要等待网络设备N给控制器返回应答,可以继续做后续处理。同理,网络设备N向控制器上报拓扑消息也采用异步方式。
当双向流创建后,网络设备N将全部拓扑消息上报给控制器;在网络设备N运行期间,当拓扑发生变化时,网络设备N将与拓扑变化对应的拓扑信息上报给控制器。
3、控制器启动定时器,周期性地对与网络设备N之间的双向流的有效性进行检测。
在该实施例中,以定时器的超时时长为1分钟为例。
4、定时器超时时,控制器向网络设备N发送检测请求报文,以确定与网络设备N之间的双向流是否有效。
在该实施例中,当定时器超时时,控制器向网络设备N发送检测请求报文,如调用RPC check(检测),以指示网络设备N检测与控制器之间的双向流的有效性。
在本发明实施例中,给出一种RPC check的具体实现方式,具体如下所示:
其中,控制器调用RPC check时,可以设置超时时间,若控制器在该超时时间内未收到RPC check的应答,则确定与网络设备N之间的双向流为无效状态。
在该实施例中,网络设备N向控制器发送的检测应答报文中包括的检测结果可以包括:Serving(正在服务,即上述第一值)、NOT_Sevring(未在服务,即上述第二值)或Unknow(未知,即上述第三值)。
控制器接收到网络设备N发送的检测应答报文时,根据该检测应答报文中包括的检测结果确定与网络设备N之间的双向流的有效性。
当检测结果为Serving时,确定与网络设备N之间的双向流为有效状态。
当检测结果为NOT_Serving或Unknow时,确定与网络设备N之间的双向流为无效状态。
在该实施例中,当控制器确定与网络设备N之间的双向流为有效状态时,重启定时器,并转至步骤4;
当控制器确定与网络设备N之间的双向流为无效状态时,转至步骤5。
5、控制器断开与网络设备N之间的gRPC连接,停止定时器。
6、控制器选择网络设备(N+1)%M为第二网络设备,并与网络设备 N+1建立gRPC连接。
7、当成功建立gRPC连接时,与网络设备(N+1)%M(即上述第二网络设备)创建双向流(即上述第二双向流),通过该第二双向流从第二网络设备中收集拓扑信息。
在该实施例中,以按照设备编号从小到大的顺序,轮询选择第二网络设备为例。
当控制器确定与网络设备N之间的双向流为无效状态时,控制器选择网络设备(N+1)%M为第二网络设备。
其中,“%”为取模运算。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过控制器向第一网络设备发送检测请求报文,并根据接收到的第一网络设备发送的检测应答报文中包括的检测结果确定第一双向流的有效性;当确定第一双向流为无效状态时,控制器与第二网络设备建立gRPC连接,并与第二网络设备创建第二双向流,通过第二双向流从第二网络设备中收集拓扑信息,保证了网络设备中拓扑上报模块故障时,控制器可以及时检测到该故障,并进行故障切换,提高拓扑收集的可靠性。
请参见图4,为本发明实施例提供一种拓扑信息收集装置的结构示意图,其中,该拓扑信息收集装置可以应用于上述方法实施例中的控制器,如图4 所示,该拓扑信息收集装置可以包括:
发送单元410,用于向所述第一网络设备发送检测请求报文,所述检测请求报文用于指示所述第一网络设备对所述第一双向流的有效状态进行检测;
接收单元420,用于接收第一网络设备发送的检测应答报文;
获取单元430,用于当所述接收单元420接收到所述第一网络设备发送的检测应答报文时,获取所述检测应答报文中包括的检测结果;
确定单元440,用于根据所述检测结果确定所述第一双向流为有效状态或无效状态;
建立单元450,用于当所述确定单元440确定所述第一双向流为无效状态时,与第二网络设备建立gRPC连接,并与所述第二网络设备创建第二双向流;其中,所述第二网络设备与所述第一网络设备具有相同的拓扑信息;
收集单元460,用于通过所述第二双向流从所述第二网络设备中收集拓扑信息。
在可选实施例中,所述发送单元410,具体用于周期性地向所述第一网络设备发送检测请求报文;
或,
所述发送单元410,具体用于当目标时间达到预设时间阈值时,向所述第一网络设备发送检测请求报文;其中,所述目标时间为未通过所述第一双向流接收到所述第一网络设备发送的拓扑信息的持续时间,当通过所述第一双向流接收到所述第一网络设备发送的拓扑信息,或,确定所述第一双向流为有效状态时,所述目标时间清零,并重置。
在可选实施例中,所述检测应答报文中包括的检测结果包括:第一值或第二值;
其中,所述第一值表明目标线程为正常状态,所述第二值表明所述目标线程为异常状态,所述目标线程为所述第一网络设备中与所述第一双向流对应的线程;
所述确定单元440,具体用于当所述检测结果为所述第二值时,确定所述第一双向流为无效状态。
在可选实施例中,所述确定单元440,还用于当所述接收单元420未在预设时间内接收到所述第一网络设备发送的检测应答报文时,确定所述第一双向流为无效状态。
请一并参见图5,为本发明实施例提供的另一种拓扑信息收集装置的结构示意图,如图5所示,在图4所示拓扑信息收集装置的基础上,图5所示拓扑信息收集装置还包括:
选择单元470,用于当存在多个候选第二网络设备时,根据所述第一网络设备以及各候选第二网络设备的编号,以预设顺序轮询各候选第二网络设备,选择一个候选第二网络设备作为所述第二网络设备;其中,被选择的候选第二网络设备为所述预设顺序中所述第一网络设备的后一设备,所述预设顺序为编号从大到小的顺序,或,编号从小到大的顺序;
所述建立单元450,具体用于与所述第二网络设备建立gRPC连接。
请参见图6,为本发明实施例提供的一种拓扑信息收集装置的硬件结构示意图。该拓扑信息收集装置可以包括处理器601、存储有机器可执行指令的机器可读存储介质602。处理器601与机器可读存储介质602可经由系统总线603通信。并且,通过读取并执行机器可读存储介质602中与拓扑信息收集逻辑对应的机器可执行指令,处理器601可执行上文描述的拓扑信息收集方法。
本文中提到的处理器601可以是任何架构的通用处理器CPU芯片,FPAG 逻辑芯片器件,通用网络处理器NP芯片等。
本文中提到的机器可读存储介质602可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质602可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
本发明实施例还提供了一种包括机器可执行指令的机器可读存储介质,例如图6中的机器可读存储介质602,所述机器可执行指令可由拓扑信息收集装置中的处理器601执行以实现以上描述的拓扑信息收集方法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,通过控制器向第一网络设备发送检测请求报文,并根据接收到的第一网络设备发送的检测应答报文中包括的检测结果确定第一双向流的有效性;当确定第一双向流为无效状态时,控制器与第二网络设备建立gRPC连接,并与第二网络设备创建第二双向流,通过第二双向流从第二网络设备中收集拓扑信息,保证了网络设备中拓扑上报模块故障时,控制器可以及时检测到该故障,并进行故障切换,提高拓扑收集的可靠性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种拓扑信息收集方法,应用于作为开源远程过程调用gRPC的客户端的控制器,其特征在于,所述控制器与作为gRPC的服务端的第一网络设备之间创建有第一双向流,所述方法包括:
向所述第一网络设备发送检测请求报文,所述检测请求报文用于指示所述第一网络设备对所述第一双向流的有效状态进行检测,以使所述第一网络设备通过检测目标线程的状态,确定所述第一双向流的有效状态,所述目标线程为所述第一网络设备中与所述第一双向流对应的线程;
当接收到所述第一网络设备发送的检测应答报文时,获取所述检测应答报文中包括的检测结果;
当根据所述检测结果确定所述第一双向流为无效状态时,与第二网络设备建立gRPC连接,并与所述第二网络设备创建第二双向流,通过所述第二双向流从所述第二网络设备中收集拓扑信息;其中,所述第二网络设备与所述第一网络设备具有相同的拓扑信息。
2.根据权利要求1所述的方法,其特征在于,所述向所述第一网络设备发送检测请求报文,包括:
周期性地向所述第一网络设备发送检测请求报文;
或,
当目标时间达到预设时间阈值时,向所述第一网络设备发送检测请求报文;其中,所述目标时间为未通过所述第一双向流接收到所述第一网络设备发送的拓扑信息的持续时间,当通过所述第一双向流接收到所述第一网络设备发送的拓扑信息,或,确定所述第一双向流为有效状态时,所述目标时间清零,并重置。
3.根据权利要求1所述的方法,其特征在于,所述检测应答报文中包括的检测结果包括:第一值或第二值;
其中,所述第一值表明目标线程为正常状态,所述第二值表明所述目标线程为异常状态;
所述根据所述检测结果确定所述第一双向流为无效状态,包括:
当所述检测结果为所述第二值时,确定所述第一双向流为无效状态。
4.根据权利要求1所述的方法,其特征在于,所述向所述第一网络设备发送检测请求报文之后,还包括:
当未在预设时间内接收到所述第一网络设备发送的检测应答报文时,确定所述第一双向流为无效状态,并与所述第二网络设备建立gRPC连接。
5.根据权利要求1或4所述的方法,其特征在于,所述与第二网络设备建立gRPC连接,包括:
当存在多个候选第二网络设备时,根据所述第一网络设备以及各候选第二网络设备的编号,以预设顺序轮询各候选第二网络设备,选择一个候选第二网络设备作为所述第二网络设备;其中,被选择的候选第二网络设备为所述预设顺序中所述第一网络设备的后一设备,所述预设顺序为编号从大到小的顺序,或,编号从小到大的顺序;
与所述第二网络设备建立gRPC连接。
6.一种拓扑信息收集装置,应用于作为开源远程过程调用gRPC的客户端的控制器,其特征在于,所述控制器与作为gRPC的服务端的第一网络设备之间创建有第一双向流,所述装置包括:
发送单元,用于向所述第一网络设备发送检测请求报文,所述检测请求报文用于指示所述第一网络设备对所述第一双向流的有效状态进行检测,以使所述第一网络设备通过检测目标线程的状态,确定所述第一双向流的有效状态,所述目标线程为所述第一网络设备中与所述第一双向流对应的线程;
接收单元,用于接收第一网络设备发送的检测应答报文;
获取单元,用于当所述接收单元接收到所述第一网络设备发送的检测应答报文时,获取所述检测应答报文中包括的检测结果;
确定单元,用于根据所述检测结果确定所述第一双向流为有效状态或无效状态;
建立单元,用于当所述确定单元确定所述第一双向流为无效状态时,与第二网络设备建立gRPC连接,并与所述第二网络设备创建第二双向流;其中,所述第二网络设备与所述第一网络设备具有相同的拓扑信息;
收集单元,用于通过所述第二双向流从所述第二网络设备中收集拓扑信息。
7.根据权利要求6所述的装置,其特征在于,
所述发送单元,具体用于周期性地向所述第一网络设备发送检测请求报文;
或,
所述发送单元,具体用于当目标时间达到预设时间阈值时,向所述第一网络设备发送检测请求报文;其中,所述目标时间为未通过所述第一双向流接收到所述第一网络设备发送的拓扑信息的持续时间,当通过所述第一双向流接收到所述第一网络设备发送的拓扑信息,或,确定所述第一双向流为有效状态时,所述目标时间清零,并重置。
8.根据权利要求6所述的装置,其特征在于,所述检测应答报文中包括的检测结果包括:第一值或第二值;
其中,所述第一值表明目标线程为正常状态,所述第二值表明所述目标线程为异常状态;
所述确定单元,具体用于当所述检测结果为所述第二值时,确定所述第一双向流为无效状态。
9.根据权利要求6所述的装置,其特征在于,
所述确定单元,还用于当所述接收单元未在预设时间内接收到所述第一网络设备发送的检测应答报文时,确定所述第一双向流为无效状态。
10.根据权利要求6或9所述的装置,其特征在于,所述装置还包括:
选择单元,用于当存在多个候选第二网络设备时,根据所述第一网络设备以及各候选第二网络设备的编号,以预设顺序轮询各候选第二网络设备,选择一个候选第二网络设备作为所述第二网络设备;其中,被选择的候选第二网络设备为所述预设顺序中所述第一网络设备的后一设备,所述预设顺序为编号从大到小的顺序,或,编号从小到大的顺序;
所述建立单元,具体用于与所述第二网络设备建立gRPC连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910722491.3A CN110391945B (zh) | 2019-08-06 | 2019-08-06 | 一种拓扑信息收集方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910722491.3A CN110391945B (zh) | 2019-08-06 | 2019-08-06 | 一种拓扑信息收集方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110391945A CN110391945A (zh) | 2019-10-29 |
CN110391945B true CN110391945B (zh) | 2022-04-26 |
Family
ID=68288594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910722491.3A Active CN110391945B (zh) | 2019-08-06 | 2019-08-06 | 一种拓扑信息收集方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110391945B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106034138A (zh) * | 2015-03-09 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种远程服务调用方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107438060B (zh) * | 2016-05-28 | 2020-12-15 | 华为技术有限公司 | 一种网络设备中的远程过程调用方法及网络设备 |
CN108429641B (zh) * | 2018-02-28 | 2021-07-06 | 新华三技术有限公司 | 一种网络设备管理方法及装置 |
-
2019
- 2019-08-06 CN CN201910722491.3A patent/CN110391945B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106034138A (zh) * | 2015-03-09 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种远程服务调用方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110391945A (zh) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201944236A (zh) | 任務處理方法、裝置及系統 | |
US7130899B1 (en) | Robust indication processing | |
US8099504B2 (en) | Preserving sessions in a wireless network | |
KR101513863B1 (ko) | 네트워크 요소 서비스 복구를 위한 방법 및 시스템 | |
CN106533805B (zh) | 一种微服务请求处理方法、微服务控制器及微服务架构 | |
US7257731B2 (en) | System and method for managing protocol network failures in a cluster system | |
CN110830283A (zh) | 故障检测方法、装置、设备和系统 | |
CN106034137A (zh) | 用于分布式系统的智能调度方法及分布式服务系统 | |
CN107181834B (zh) | 一种redis管理虚拟IP地址的方法、装置及redis系统 | |
CN107872326B (zh) | 一种释放会话资源的方法、装置和系统 | |
CN106797330A (zh) | 用于监测内容递送网络(cdn)的方法、业务监测器(tm)、请求路由器(rr)和系统 | |
CN112612769A (zh) | 文件处理方法、装置及存储介质 | |
US20030014516A1 (en) | Recovery support for reliable messaging | |
WO2017054734A1 (zh) | 一种锁定文件管理方法和装置 | |
JP6421516B2 (ja) | サーバ装置、冗長構成サーバシステム、情報引継プログラム及び情報引継方法 | |
JP2005301436A (ja) | クラスタシステムおよびクラスタシステムにおける障害回復方法 | |
CN110391945B (zh) | 一种拓扑信息收集方法及装置 | |
CN113867915A (zh) | 任务调度方法、电子设备及存储介质 | |
KR101207219B1 (ko) | 데이터 분산 서비스 네트워크 과부하 방지 방법 | |
CN110661836B (zh) | 消息路由方法、装置及系统、存储介质 | |
CN110890989A (zh) | 一种通道连接方法及装置 | |
CN107547257B (zh) | 一种服务器集群实现方法及装置 | |
KR100440570B1 (ko) | 비동기 전송방식 교환기에서 프로세서간 통신 경로 정보를동적으로 설정하는 방법 | |
US20190068471A1 (en) | Dynamic asynchronous communication management | |
JP4818338B2 (ja) | 監視サーバ、ネットワーク監視方法 |
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 |