掌桥专利:专业的专利平台
掌桥专利
首页

网络链路异常的处理方法、装置及设备

文献发布时间:2023-06-19 12:21:13


网络链路异常的处理方法、装置及设备

技术领域

本申请涉及计算机技术领域,具体而言,涉及一种网络链路异常的处理方法、装置及设备。

背景技术

在分布式系统中,集群内有成百上千台计算机节点同时服务,节点和节点之间有多跳交换机设备,用户的读写请求在节点之间相互访问时,读写请求数据需要经过不同的交换机设备进行传输,形成不同的网络通信链路。一般每个计算机节点均部署两个网卡进行对外的读写请求数据转发,这两个网卡连接不同的交换机设备,具有等价容灾的能力。当集群内某个交换机或者某个计算机节点的网卡出现转发黑洞时,会导致业务持续不可访问,降低分布式系统的服务质量。因而,分布式系统需要提供网络转发质量的自适应快速检测和快速恢复能力。

但是,由于在现有的服务器集群中,需要由客户端、服务器端以及故障检测服务器三者结合来实现链路故障检测。当计算机节点的双网卡对应的网络链路均出现转发黑洞时,则这台计算机不可与外部节点联通,因而无法实现链路故障检测和快速自恢复。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种网络链路异常的处理方法、装置及设备,以至少解决现有技术中分布式集群难以及时有效处理网络链路异常,导致降低分布式系统的服务质量的技术问题。

根据本申请实施例的一个方面,提供了一种网络链路异常的处理方法,上述方法应用于分布式系统,上述分布式系统包括客户端和服务器集群,上述服务器集群包括:第一服务器和多个第二服务器,上述第一服务器用于从上述多个第二服务器中选取为客户端提供服务的目标服务器,上述方法包括:通过上述客户端上待使用的检测方式对上述客户端与上述目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

根据本申请实施例的另一方面,还提供了一种网络链路异常的处理装置,上述装置应用于分布式系统,上述分布式系统包括客户端和服务器集群,上述服务器集群包括:第一服务器和多个第二服务器,上述第一服务器用于从上述多个第二服务器中选取为客户端提供服务的目标服务器,上述装置包括:检测模块,用于通过上述客户端上待使用的检测方式对上述客户端与上述目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;处理模块,用于在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

根据本申请实施例的另一方面,还提供了一种存储介质,上述存储介质包括存储的程序,其中,在上述程序运行时控制上述存储介质所在设备执行任意一项上述的网络链路异常的处理方法。

根据本申请实施例的另一方面,还提供了一种网络链路异常的处理设备,包括:处理器;以及存储器,与上述处理器连接,用于为上述处理器提供处理以下处理步骤的指令:通过上述客户端上待使用的检测方式对上述客户端与上述目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

在本申请实施例中,通过服务器集群中的第一服务器从服务器集群中的多个第二服务器中选取为客户端提供服务的目标服务器,并且,通过上述客户端上待使用的检测方式对上述客户端与上述目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

容易注意到的是,本申请实施例通过客户端直接对客户端与目标服务器之间的第一网络链接的通信状态进行检测,并在基于检测结果确定上述第一网络链接出现异常时,及时断开第一网络链接。

由此,本申请达到了及时有效处理网络链路异常的目的,从而实现了提升分布式系统的服务质量的技术效果,进而解决了现有技术中分布式集群难以及时有效处理网络链路异常,导致降低分布式系统的服务质量的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种用于实现网络链路异常的处理方法的计算机终端(或移动设备)的硬件结构框图;

图2是根据本申请实施例的一种网络链路异常的处理方法的流程图;

图3是根据本申请实施例的一种可选的网络链路异常的处理方法的场景示意图;

图4是根据本申请实施例的一种可选的检测网络链路异常的检测场景示意图;

图5是根据本申请实施例的一种可选的重建第二网络链接的场景示意图;

图6是根据本发明实施例的一种网络链路异常的处理装置的结构示意图;

图7是根据本发明实施例的一种网络链路异常的处理设备的结构示意图;

图8是根据本申请实施例的另一种计算机终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

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

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

网络转发黑洞:是指数据报文经过交换机设备、网卡设备等,由于软件问题、硬件问题、配置错误等原因导致数据报文被丢弃的场景,网络设备不具备网络黑洞感知能力,会导致这条网络路径持续不可恢复。

实施例1

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

本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现网络链路异常的处理方法的计算机终端(或移动设备)的硬件结构框图,如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的网络链路异常的处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的网络链路异常的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。

在上述运行环境下,本申请提供了如图2所示的一种网络链路异常的处理方法,上述方法应用于分布式系统,上述分布式系统包括客户端和服务器集群,上述服务器集群包括:第一服务器和多个第二服务器,上述第一服务器用于从上述多个第二服务器中选取为客户端提供服务的目标服务器,图2是根据本申请实施例的一种网络链路异常的处理方法的流程图,如图2所示,上述网络链路异常的处理方法包括如下步骤:

步骤S202,通过上述客户端上待使用的检测方式对上述客户端与上述目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;

步骤S204,在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

在本申请实施例中,通过服务器集群中的第一服务器从服务器集群中的多个第二服务器中选取为客户端提供服务的目标服务器,并且,通过上述客户端上待使用的检测方式对上述客户端与上述目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

容易注意到的是,本申请实施例通过客户端直接对客户端与目标服务器之间的第一网络链接的通信状态进行检测,并在基于检测结果确定上述第一网络链接出现异常时,及时断开第一网络链接。

由此,本申请实施例达到了及时有效处理网络链路异常的目的,从而实现了提升分布式系统的服务质量的技术效果,进而解决了现有技术中分布式集群难以及时有效处理网络链路异常,导致降低分布式系统的服务质量的技术问题。

需要说明的是,本申请实施例中的执行主体为客户端,本申请实施例通过客户端直接对客户端与目标服务器之间的第一网络链接的通信状态进行检测,可以实现在基于检测结果确定上述第一网络链接出现异常时,及时断开第一网络链接。

可选的,上述服务器集群可以为数据中心集群,上述第一服务器可以为中心管理节点cluster,上述第二服务器可以为服务节点server,上述目标服务器可以为目标服务节点。

作为一种可选的实施例,一个数据中心集群可以包含一个中心管理节点cluster和多个服务节点server,用户数据通过客户端Cl ient节点来访问数据中心集群中的目标服务节点。

在一种可选的实施例中,客户端可以向第一服务器获取目标服务器的标识信息;并基于该标识信息在客户端与目标服务器之间建立上述第一网络链接,可选的,上述第一网络链接包括:第一子链接和第二子链接,该第一子链接用于发送心跳报文,该第二子链接用于发送数据报文。

可选的,在一种实施例中,每个服务节点之间使用基于传输控制协议TCP的远程过程调用RPC网络数据来相互访问,如图3所示,客户端Client节点先访问中心管理节点cluster(即第一服务器),由中心管理节点cluster调度选出目标服务节点返回给客户端,客户端与目标服务节点之间建立用于发送心跳报文的传输控制协议链接(即第一子链接)和用于发送读写请求IO数据报文的传输控制协议链接(即第二子链接),两者之间的传输控制协议链接会经过多跳交换机设备。

需要说明的是,在本申请实施例中,对于客户端业务而言,其具备如下特点:(1)使用心跳远程过程调用来识别服务器端是否处于可服务状态;(2)用户读写请求数据通过客户端节点的多条传输控制协议链接转发给服务节点,用于提高并发能力;(3)当读写请求数据远程过程调用出现失败时,客户端可以继续在同一条传输控制协议链接上重试,直到读写请求成功;(4)当心跳远程过程调用失败预定次数后,客户端可以向中心管理节点重新发起调度请求,进而选择新的服务节点进行读写请求访问。

作为一种可选的实施例,考虑整个服务器集群系统实际运行时的配置条件,本申请实施例中,为了防止服务节点异常场景下的突发的读写请求访问场景,读写请求数据的远程过程调用的超时时间设置为秒级;并且,读写请求数据的远程过程调用的超时重试时间可以按照指数级退避。

作为另一种可选的实施例,为了防止异常场景下对中心管理节点的高并发访问,保证中心管理节点的服务质量,客户端节点访问中心管理节点的控制流节点时,可以将控制流节点的远程过程调用的超时时间设置的相对较长,例如,可以设置为分钟级。

在一种可选的实施例中,对上述第一网络链接的上述通信状态进行检测,得到上述检测结果包括:

步骤S302,基于上述第一网络链接当前采用的网络通信协议配置检测参数,并通过上述检测参数确定待使用的检测方式;

步骤S304,按照上述待使用的检测方式对上述第一网络链接的上述通信状态进行检测,得到上述检测结果。

当分布式系统内某个交换机设备的第一网络链接出现异常时,例如,第一网络链接出现转发黑洞时,为了保证系统的服务质量,本申请实施例中提供了多种检测机制实现快速检测网络故障。如图4所示,在传输控制协议链接的客户端中可以但不限于提供多种检测方式来快速检测网络质量,当检测到第一网络链接出现异常时,客户端可以主动断开第一网络链接,避免读写请求数据继续在不可用的传输控制协议链接上发送。

可选的,仍如图4所示,上述待使用的检测方式包括如下至少之一:应答超时检测方式、空闲链接检测方式、心跳检测方式。

在一种可选的实施例中,基于上述网络通信协议配置上述检测参数,并通过上述检测参数确定上述待使用的检测方式包括:

步骤S402,确定上述网络通信协议为传输控制协议,通过上述传输控制协议下的用户超时参数选项配置上述检测参数;

步骤S404,基于上述检测参数确定上述待使用的检测方式为应答超时检测方式。

在上述步骤S402中,上述用户超时参数选项用于设定上述客户端在向上述目标服务器发送数据报文后未接收到应答报文的最大时长。

在上述可选的实施例中,在确定上述网络通信协议为传输控制协议的情况下,可以通过上述传输控制协议下的用户超时参数选项配置上述检测参数;并基于上述检测参数确定上述待使用的检测方式为应答超时检测方式(tcp_user_timeout)。上述用户超时参数选项由内核协议栈提供逻辑,其中,linux内核版本从2.6.37开始支持,可以使用定时器逻辑实现。

在一种可选的实施例中,按照上述待使用的检测方式对上述第一网络链接的上述通信状态进行检测,得到上述检测结果包括:

步骤S502,在上述应答超时检测方式下,向上述目标服务器发送上述数据报文,并记录第一时长,其中,上述第一时长为上述客户端未接收到上述应答报文的时长;

步骤S504,确定上述第一时长达到上述用户超时参数设定的最大时长,向上述目标服务器重传上述数据报文,并记录第二时长,其中,上述第二时长为上述客户端再次未接收到上述应答报文的时长;

步骤S506,确定上述第二时长达到预设时间阈值,得到上述检测结果。

在上述可选的实施例中,在上述应答超时检测方式下,客户端向上述目标服务器发送上述数据报文,若客户端未接收到应答报文的第一时长达到用户超时参数设定的最大时长,则向上述目标服务器重传上述数据报文,并记录客户端再次未接收到上述应答报文的第二时长,若确定该第二时长达到预设时间阈值,即当客户端向目标服务器重传数据报文的第二时长达到预设时间阈值后,检测发现依然未接收到应答报文,则可认定该传输控制协议链接的网络链路出现异常,例如,出现转发黑洞,客户端可以主动断开第一网络链接。

在一种可选的实施例中,基于上述网络通信协议配置上述检测参数,并通过上述检测参数确定上述待使用的检测方式包括:

步骤S602,确定上述网络通信协议为传输控制协议,通过上述传输控制协议下的保活参数选项配置上述检测参数;

步骤S604,基于上述检测参数确定上述待使用的检测方式为空闲链接检测方式。

在上述步骤S602中,上述保活参数选项用于设定允许上述网络链路的最大空闲时长(TCP_KEEPIDLE)、保活探测报文的重传间隔(TCP_KEEPINTVL)、上述保活探测报文的发送次数(TCP_KEEPCNT)。

可选的,上述最大空闲时长是指网络链接上无数据发送持续多久后开始探测保活的时长;上述重传间隔是指探测报文出现失败后的重试发送间隔;上述发送次数是指探测报文主动断链时连续失败的次数。

在上述可选的实施例中,上述空闲链接检测方式(tcp_keepalive),是指传输控制协议链接的保活机制,需要说明的是,上述应答超时检测方式在检测时需要应用层有数据发送,相比较该应答超时检测方式而言,上述空闲链接检测方式则是在应用层无数据发送时主动在网络链路上发送探测报文。

在上述可选的实施例中,可以采用上述空闲链接检测方式,实现断开网络转发黑洞链路上的空闲链接,其最长断链时间为最大空闲时长+重传间隔*发送次数。

在一种可选的实施例中,按照上述待使用的检测方式对上述第一网络链接的上述通信状态进行检测,得到上述检测结果包括:

步骤S702,在上述空闲链接检测方式下,确定到达上述最大空闲时长的结束时刻,向上述目标服务器发送上述保活探测报文;

步骤S704,按照上述重传间隔和上述发送次数确定上述保活探测报文均发送失败,得到上述检测结果。

在上述可选的实施例中,在空闲链接检测方式下,确定到达上述最大空闲时长的结束时刻,向上述目标服务器发送上述保活探测报文;并且,若根据发送上述保活探测报文的重传间隔和发送上述保活探测报文的发送次数,确定发送的保活探测报文均失败,则可认定该传输控制协议链接的网络链路出现异常,客户端可以主动断开第一网络链接。

在一种可选的实施例中,基于上述网络通信协议配置上述检测参数,并通过上述检测参数确定上述待使用的检测方式包括:

步骤S802,确定上述网络通信协议为传输控制协议,通过上述传输控制协议下的心跳参数选项配置上述检测参数,其中,上述心跳参数选项用于设定心跳次数;

步骤S804,基于上述检测参数确定上述待使用的检测方式为心跳检测方式。

可选的,上述心跳检测方式(rpcheatbeart)是指网络库在传输控制协议链接上的心跳机制,在固定时间内发送一次心跳远程过程调用,以实现诊断网络链路的可用性。

需要说明的是,上述可选的实施例中的应答超时检测方式对内核版本有要求,心跳检测方式则是对应答超时检测方式的补充,可在内核版本不支持应答超时检测方式时开启心跳检测方式。

在一种可选的实施例中,按照上述待使用的检测方式对上述第一网络链接的上述通信状态进行检测,得到上述检测结果包括:

步骤S902,在上述心跳检测方式下,向上述目标服务器发送心跳报文;

步骤S904,确定上述心跳报文连续发送失败的次数达到第一预设次数阈值,得到上述检测结果。

在上述实施例中,在上述心跳检测方式下,向上述目标服务器发送心跳报文,当连续N次心跳远程过程调用均失败时,结合传输控制协议链接的参数可判断该传输控制协议链接的网络链路是否出现异常,即若确定上述心跳报文连续发送失败的次数达到第一预设次数阈值,则该传输控制协议链接的网络链路出现异常,客户端可以主动断开第一网络链接。

需要说明的是,在本申请实施例中,在快速断开传输控制协议链接之后,还可以快速恢复重建链接才可以恢复分布式系统的业务,本申请实施例还提供了如下可选的传输控制协议链接的快速恢复重建链接机制,使得系统内节点能自适应的断开不可用的传输控制协议链接,覆盖多种不同业务场景;在网络转发黑洞等网络异常场景下,使得原本需要分钟级恢复甚至不可自动恢复的分布式节点,可做到半分钟内就有自适应断开被黑洞链接并快速找到新的可用路径,进而恢复分布式系统的业务。

在一种可选的实施例中,上述方法还包括:

步骤S1002,从上述客户端本地维护的端口数据中选取待使用的源端口;

步骤S1004,基于上述待使用的源端口在上述客户端与上述目标服务器之间尝试建立第二网络链接;

步骤S1006,确定建立上述第二网络链接的重试次数达到第二预设次数阈值,对上述待使用的源端口进行更新,得到更新后源端口;

步骤S1008,采用上述更新后源端口重新尝试建立上述第二网络链接,直至成功建立上述第二网络链接。

作为一种可选的实施例,如图5所示,客户端节点在进程内维护有后台链接池,维护到不同服务节点之间的多条可用的传输控制协议链接,并定时发送探测包以保证网络链路的可用性。

例如,当客户端要发起传输控制协议链接时,优先从上述客户端本地维护的端口数据中选取待使用的源端口,基于上述待使用的源端口在上述客户端与上述目标服务器之间尝试建立第二网络链接,本申请实施例中,可以基于上述待使用的源端口组成传输控制协议五元组之后,尝试与服务节点建立链接,但是由于后台链接池的定时刷新机制,若发生网络黑洞时,则后台链接池内的网络链接则均不可用,因而,在重新建立第二网络链接时设置重试次数(tcp_syn_retries),即重新建立传输控制协议链接时的最大重试次数,若在该重试次数达到第二预设次数阈值,则确定建立第二网络链接失败,则对上述待使用的源端口进行更新,得到更新后源端口;并且,当新建第二网络链接失败时,由内核以递增更新源端口的方式进行重试建立上述第二网络链接,直至成功建立上述第二网络链接。

通过本申请实施例,在分布式系统内出现网络转发黑洞等网络链接异常时,可以采用本申请实施例所提供的以上三种快速检测方式使得客户端节点具备快速检测能力,有效的及时断开有数据的传输控制协议链接、空闲的传输控制协议链接,可以但不限于适用于兼顾业务心跳链接和读写数据请求链接不一致的场景。并且,采用本申请实施例所提供的上述快速恢复重建链接机制,在重新建立第二网络链接时设置重试次数,可以保证重新建立第二网络链接的时间不会过长,不依赖业务指定的分钟级超时时间;通过进程内维护后台链接池最大化提高建连成功率,提高分布式系统的网络黑洞场景下的快速恢复能力。

在一种可选的实施例中,上述方法还包括:

步骤S1102,向上述第一服务器获取上述目标服务器的标识信息;

步骤S1104,基于上述标识信息在上述客户端与上述目标服务器之间建立上述第一网络链接,其中,上述第一网络链接包括:第一子链接和第二子链接,上述第一子链接用于发送心跳报文,上述第二子链接用于发送数据报文。

在上述可选的实施例中,客户端可以向第一服务器获取目标服务器的标识信息;并基于该标识信息在客户端与目标服务器之间建立上述第一网络链接,可选的,上述第一网络链接包括:第一子链接和第二子链接,该第一子链接用于发送心跳报文,该第二子链接用于发送数据报文。

在一种可选的实施例中,上述方法还包括:

步骤S1202,基于上述第一子链接向上述目标服务器发送上述心跳报文,确定上述目标服务器的服务状态。

可选的,在上述实施例中,基于该第一子链接向目标服务器发送心跳报文,则可以确定上述目标服务器的服务状态,以实现诊断网络链路的可用性。

在一种可选的实施例中,上述方法还包括:

步骤S1302,确定上述心跳报文连续发送失败的次数达到第三预设次数阈值,请求上述第一服务器重新为上述客户端分配新的目标服务器。

在上述步骤S1302中,若确定上述心跳报文连续发送失败的次数达到第三预设次数阈值,则客户端可以请求第一服务器重新为客户端分配新的目标服务器。

在一种可选的实施例中,上述方法还包括:

步骤S1402,基于多条上述第二子链接向上述目标服务器并行发送上述数据报文。

可选的,该第二子链接用于发送数据报文,因而可以基于多条上述第二子链接向上述目标服务器并行发送上述数据报文。

本申请实施例提出的应用于分布式系统中的网络链路异常的处理方法中,网络链路异常的快速检测机制可以适用于任意数量的设备,此时客户端节点可以感知到网络链路不可用并主动断开与该网络链路的链接;快速恢复网络链接机制则可应用于服务节点的单边网络链路出现网络链路异常的场景,此时服务节点可以将当前所有传输控制协议链接迁移到另一个可用的网络链路上。

为了提高分布式系统在出现极端网络转发黑洞等网络异常情况下的服务质量,本申请实施例设计了一套服务节点内针对单边网络链路转发黑洞场景的自适应快速检测机制和快速恢复机制,配合分布式业务逻辑,可以使得服务节点具备网络黑洞识别能力,覆盖业务逻辑中的心跳传输控制协议链接与读写请求数据的传输控制协议链接不一致、当前无读写请求数据发送的传输控制协议链接等场景;具备快速探测可用路径重新建立网络连接的能力,可以实现有效提高传输控制协议链接的重建成功率。

基于本申请实施例,在检测到分布式系统中节点和节点之间的网络链路出现转发黑洞时,本申请实施例提出的检测机制可以快速检测到传输控制协议链接的不连通性,及时断开该网络链接,避免读写请求数据持续在不可连通的网络链路上转发;并且通过恢复机制可以快速探测到新的可用传输控制协议链接,进而恢复读写请求数据的转发,极大地提高新连接的重建成功率。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

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

实施例2

根据本申请实施例,还提供了一种用于实施上述网络链路异常的处理方法的网络链路异常的处理装置实施例,上述装置应用于分布式系统,上述分布式系统包括客户端和服务器集群,上述服务器集群包括:第一服务器和多个第二服务器,上述第一服务器用于从上述多个第二服务器中选取为客户端提供服务的目标服务器,图6是根据本发明实施例的一种网络链路异常的处理装置的结构示意图,如图6所示,该装置包括:检测模块600和处理模块602,其中:

检测模块600,用于通过上述客户端上待使用的检测方式对上述客户端与上述目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;处理模块602,用于在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

在本申请实施例中,通过服务器集群中的第一服务器从服务器集群中的多个第二服务器中选取为客户端提供服务的目标服务器,并且,通过上述客户端上待使用的检测方式对上述客户端与上述目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

容易注意到的是,本申请实施例通过客户端直接对客户端与目标服务器之间的第一网络链接的通信状态进行检测,并在基于检测结果确定上述第一网络链接出现异常时,及时断开第一网络链接。

由此,本申请达到了及时有效处理网络链路异常的目的,从而实现了提升分布式系统的服务质量的技术效果,进而解决了现有技术中分布式集群难以及时有效处理网络链路异常,导致降低分布式系统的服务质量的技术问题。

此处需要说明的是,上述检测模块600和处理模块602对应于实施例1中的步骤S202至步骤S204,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

还需要说明的是,本实施例的优选实施方式可以参见实施例1中的相关描述,此处不再赘述。

实施例3

根据本申请实施例,还提供了一种网络链路异常的处理设备的实施例,该网络链路异常的处理设备可以是计算设备群中的任意一个计算设备。图7是根据本发明实施例的一种网络链路异常的处理设备的结构示意图,如图7所示,该网络链路异常的处理设备包括:处理器700和存储器702,其中:

存储器702,与上述处理器700连接,用于为上述处理器700提供处理以下处理步骤的指令:对客户端与目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

在本申请实施例中,通过服务器集群中的第一服务器从服务器集群中的多个第二服务器中选取为客户端提供服务的目标服务器,并且,通过上述客户端上待使用的检测方式对上述客户端与上述目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

容易注意到的是,本申请实施例通过客户端直接对客户端与目标服务器之间的第一网络链接的通信状态进行检测,并在基于检测结果确定上述第一网络链接出现异常时,及时断开第一网络链接。

由此,本申请达到了及时有效处理网络链路异常的目的,从而实现了提升分布式系统的服务质量的技术效果,进而解决了现有技术中分布式集群难以及时有效处理网络链路异常,导致降低分布式系统的服务质量的技术问题。

还需要说明的是,本实施例的优选实施方式可以参见实施例1中的相关描述,此处不再赘述。

实施例4

根据本申请的实施例,还提供了一种计算机终端的实施例,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行网络链路异常的处理方法中以下步骤的程序代码:对客户端与目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

可选地,图8是根据本申请实施例的另一种计算机终端的结构框图,如图8所示,该计算机终端可以包括:一个或多个(图中仅示出一个)处理器802、存储器804、以及外设接口806。

其中,存储器可用于存储软件程序以及模块,如本申请实施例中的网络链路异常的处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的网络链路异常的处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:对客户端与目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

可选的,上述处理器还可以执行如下步骤的程序代码:基于上述第一网络链接当前采用的网络通信协议配置检测参数,并通过上述检测参数确定待使用的检测方式;按照上述待使用的检测方式对上述第一网络链接的上述通信状态进行检测,得到上述检测结果。

可选的,上述处理器还可以执行如下步骤的程序代码:确定上述网络通信协议为传输控制协议,通过上述传输控制协议下的用户超时参数选项配置上述检测参数,其中,上述用户超时参数选项用于设定上述客户端在向上述目标服务器发送数据报文后未接收到应答报文的最大时长;基于上述检测参数确定上述待使用的检测方式为应答超时检测方式。

可选的,上述处理器还可以执行如下步骤的程序代码:在上述应答超时检测方式下,向上述目标服务器发送上述数据报文,并记录第一时长,其中,上述第一时长为上述客户端未接收到上述应答报文的时长;确定上述第一时长达到上述用户超时参数设定的最大时长,向上述目标服务器重传上述数据报文,并记录第二时长,其中,上述第二时长为上述客户端再次未接收到上述应答报文的时长;确定上述第二时长达到预设时间阈值,得到上述检测结果。

可选的,上述处理器还可以执行如下步骤的程序代码:确定上述网络通信协议为传输控制协议,通过上述传输控制协议下的保活参数选项配置上述检测参数,其中,上述保活参数选项用于设定允许上述网络链路的最大空闲时长、保活探测报文的重传间隔、上述保活探测报文的发送次数;基于上述检测参数确定上述待使用的检测方式为空闲链接检测方式。

可选的,上述处理器还可以执行如下步骤的程序代码:在上述空闲链接检测方式下,确定到达上述最大空闲时长的结束时刻,向上述目标服务器发送上述保活探测报文;按照上述重传间隔和上述发送次数确定上述保活探测报文均发送失败,得到上述检测结果。

可选的,上述处理器还可以执行如下步骤的程序代码:确定上述网络通信协议为传输控制协议,通过上述传输控制协议下的心跳参数选项配置上述检测参数,其中,上述心跳参数选项用于设定心跳次数;基于上述检测参数确定上述待使用的检测方式为心跳检测方式。

可选的,上述处理器还可以执行如下步骤的程序代码:在上述心跳检测方式下,向上述目标服务器发送心跳报文;确定上述心跳报文连续发送失败的次数达到第一预设次数阈值,得到上述检测结果。

可选的,上述处理器还可以执行如下步骤的程序代码:从上述客户端本地维护的端口数据中选取待使用的源端口;基于上述待使用的源端口在上述客户端与上述目标服务器之间尝试建立第二网络链接;确定建立上述第二网络链接的重试次数达到第二预设次数阈值,对上述待使用的源端口进行更新,得到更新后源端口;采用上述更新后源端口重新尝试建立上述第二网络链接,直至成功建立上述第二网络链接。

可选的,上述处理器还可以执行如下步骤的程序代码:向上述第一服务器获取上述目标服务器的标识信息;基于上述标识信息在上述客户端与上述目标服务器之间建立上述第一网络链接,其中,上述第一网络链接包括:第一子链接和第二子链接,上述第一子链接用于发送心跳报文,上述第二子链接用于发送数据报文。

可选的,上述处理器还可以执行如下步骤的程序代码:基于上述第一子链接向上述目标服务器发送上述心跳报文,确定上述目标服务器的服务状态。

可选的,上述处理器还可以执行如下步骤的程序代码:确定上述心跳报文连续发送失败的次数达到第三预设次数阈值,请求上述第一服务器重新为上述客户端分配新的目标服务器。

可选的,上述处理器还可以执行如下步骤的程序代码:基于多条上述第二子链接向上述目标服务器并行发送上述数据报文。

采用本申请实施例,提供了一种网络链路异常的处理的方案。通过服务器集群中的第一服务器从服务器集群中的多个第二服务器中选取为客户端提供服务的目标服务器,并且,通过上述客户端上待使用的检测方式对上述客户端与上述目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

容易注意到的是,本申请实施例通过客户端直接对客户端与目标服务器之间的第一网络链接的通信状态进行检测,并在基于检测结果确定上述第一网络链接出现异常时,及时断开第一网络链接。

由此,本申请达到了及时有效处理网络链路异常的目的,从而实现了提升分布式系统的服务质量的技术效果,进而解决了现有技术中分布式集群难以及时有效处理网络链路异常,导致降低分布式系统的服务质量的技术问题。

本领域普通技术人员可以理解,图8所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,计算机终端还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。

实施例5

根据本申请的实施例,还提供了一种存储介质的实施例。可选地,在本实施例中,上述存储介质可以用于保存上述实施例所提供的网络链路异常的处理方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:对客户端与目标服务器之间的第一网络链接的通信状态进行检测,得到检测结果;在上述客户端上基于上述检测结果确定上述第一网络链接出现异常,断开上述第一网络链接。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:基于上述第一网络链接当前采用的网络通信协议配置检测参数,并通过上述检测参数确定待使用的检测方式;按照上述待使用的检测方式对上述第一网络链接的上述通信状态进行检测,得到上述检测结果。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定上述网络通信协议为传输控制协议,通过上述传输控制协议下的用户超时参数选项配置上述检测参数,其中,上述用户超时参数选项用于设定上述客户端在向上述目标服务器发送数据报文后未接收到应答报文的最大时长;基于上述检测参数确定上述待使用的检测方式为应答超时检测方式。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在上述应答超时检测方式下,向上述目标服务器发送上述数据报文,并记录第一时长,其中,上述第一时长为上述客户端未接收到上述应答报文的时长;确定上述第一时长达到上述用户超时参数设定的最大时长,向上述目标服务器重传上述数据报文,并记录第二时长,其中,上述第二时长为上述客户端再次未接收到上述应答报文的时长;确定上述第二时长达到预设时间阈值,得到上述检测结果。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定上述网络通信协议为传输控制协议,通过上述传输控制协议下的保活参数选项配置上述检测参数,其中,上述保活参数选项用于设定允许上述网络链路的最大空闲时长、保活探测报文的重传间隔、上述保活探测报文的发送次数;基于上述检测参数确定上述待使用的检测方式为空闲链接检测方式。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在上述空闲链接检测方式下,确定到达上述最大空闲时长的结束时刻,向上述目标服务器发送上述保活探测报文;按照上述重传间隔和上述发送次数确定上述保活探测报文均发送失败,得到上述检测结果。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定上述网络通信协议为传输控制协议,通过上述传输控制协议下的心跳参数选项配置上述检测参数,其中,上述心跳参数选项用于设定心跳次数;基于上述检测参数确定上述待使用的检测方式为心跳检测方式。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在上述心跳检测方式下,向上述目标服务器发送心跳报文;确定上述心跳报文连续发送失败的次数达到第一预设次数阈值,得到上述检测结果。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从上述客户端本地维护的端口数据中选取待使用的源端口;基于上述待使用的源端口在上述客户端与上述目标服务器之间尝试建立第二网络链接;确定建立上述第二网络链接的重试次数达到第二预设次数阈值,对上述待使用的源端口进行更新,得到更新后源端口;采用上述更新后源端口重新尝试建立上述第二网络链接,直至成功建立上述第二网络链接。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:向上述第一服务器获取上述目标服务器的标识信息;基于上述标识信息在上述客户端与上述目标服务器之间建立上述第一网络链接,其中,上述第一网络链接包括:第一子链接和第二子链接,上述第一子链接用于发送心跳报文,上述第二子链接用于发送数据报文。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:基于上述第一子链接向上述目标服务器发送上述心跳报文,确定上述目标服务器的服务状态。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定上述心跳报文连续发送失败的次数达到第三预设次数阈值,请求上述第一服务器重新为上述客户端分配新的目标服务器。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:基于多条上述第二子链接向上述目标服务器并行发送上述数据报文。

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

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

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

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

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

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

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

相关技术
  • 网络链路异常的处理方法、装置及设备
  • 一种网络侧无线链路控制层报文异常的处理方法及系统
技术分类

06120113266799