一种仲裁方法及相关装置与流程

文档序号:19320575发布日期:2019-12-04 00:29阅读:224来源:国知局
一种仲裁方法及相关装置与流程

本申请涉及通信技术领域,尤其涉及一种仲裁方法及相关装置。



背景技术:

出于灾备(disasterrecovery)的目的,一般都会建设至少两个数据中心(datacenter),一个数据中心承担用户的业务,另一个数据中心备份数据、配置、业务等。当一个数据中心出现故障了,可由另一个数据中心继续承担用户的业务。例如,如图1所示,数据中心1和数据中心2均包括业务模块1~4。业务模块1~4分别提供业务1~4。业务1~4为不同的业务。其中,数据中心1中的业务模块1和业务模块2为主用业务模块,业务模块3和业务模块4为备用业务模块。数据中心2中的业务模块3和业务模块4为主用业务模块,业务模块1和业务模块2为备用业务模块。主用业务模块用于运行以提供业务,在主用业务模块出现故障时,备用业务模块升级为主用业务模块继续提供业务。例如,若数据中心1中的业务模块1出现故障,则数据中心2中的业务模块1升级为主用业务模块,由数据中心2中的业务模块1提供业务1。

当两个数据中心之间的通信链路出现故障时,两个数据中心之间的网络出现中断,由于两个数据中心的业务模块之间可能需要通信,因此需要将所有业务由一个数据中心来承担。例如,图2中的数据中心1和数据中心2之间网络中断了,可将数据中心1的业务模块3和业务模块4升级为主用业务模块。将数据中心2的业务模块3和业务模块4降为备用业务模块。数据中心1的业务模块1~4都为主用业务模块,由数据中心1来提供所有业务。

在现有技术中,当两个数据中心之间的通信链路出现故障时,是固定由某一个数据中心来提供业务的。因此,现有技术中,不能灵活地选择合理的数据中心来提供业务。



技术实现要素:

本申请实施例提供了一种仲裁方法及相关装置,能够在两个数据中心之间的通信链路出现故障时,灵活地仲裁出合理的数据中心提供业务。

第一方面,本申请提供了一种仲裁方法,应用于第一abs装置,第一abs装置处于第一dc,第一dc与第二dc相连接,第二dc包括第二abs装置,该方法包括:第一abs装置检测第一dc中的业务模块的第一状态信息;第一abs装置确定第一dc和第二dc之间的通信链路出现故障时,获取第二状态信息,该第二状态信息为第二abs装置检测到的第二dc中的业务模块的状态信息;第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁。

可见,通过实施第一方面所描述的方法,能够根据第一dc和第二dc的业务模块的实际状态来确定后续提供业务的dc,可以灵活地确定出合适的dc提供后续的业务。

可选的,第一dc、第二dc和第三dc两两相连,第一dc还包括第一数据同步模块,第二dc包括第二数据同步模块,第三dc包括第三数据同步模块,第一数据同步模块、第二数据同步模块和第三数据同步模块之间数据同步;第一abs装置还可将第一状态信息存储至第一数据同步模块中;相应地,第一abs装置获取第二状态信息的具体实施方式为:第一abs装置从第一数据同步模块中读取第二状态信息,该第二状态信息是由第二abs装置存入第二数据同步模块,并通过第三数据同步模块同步到第一数据同步模块中的。

可见,通过实施该可选的方式,由于第一数据同步模块、第二数据同步模块和第三数据同步模块可以数据同步。因此,即使第一dc与第二dc之间的通信链路发生故障,第一abs装置也可从第一数据同步模块中读取到第二状态信息。

可选的,第一abs装置还可执行以下步骤:第一abs装置检测第一dc和第二dc之间的第一网络连通状态,并将第一网络连通状态存储至第一数据同步模块中;第一abs装置从第一数据同步模块中读取第二网络连通状态,第二网络连通状态是第二abs装置检测到的第一dc和第二dc之间的网络连通状态,且第二网络连通状态是第二abs装置存入第二数据同步模块,并通过第三数据同步模块同步到第一数据同步模块中的;若第一网络连通状态和第二网络连通状态均为不连通状态,则第一abs装置确定第一dc和第二dc之间的通信链路出现故障。

网络不连通可能有两种情况,一种是第一dc和第二dc之间的通信链路出现故障,另一种情况是dc整体故障。若第一dc或第二dc未发生整体故障,仅仅是第一dc和第二dc之间的通信链路发生故障,则第一dc会检测第一网络连通状态,第二dc会检测第二网络连通状态。第一dc可从第一数据同步模块中读取到第二网络连通状态,第二dc可从第二数据同步模块中读取到第一网络连通状态,并且第一网络连通状态和第二网络连通状态肯定都是不连通。若第二dc发生整体故障,则第二dc不会检测第二网络连通状态,第一dc从第一数据同步模块中读取不到第二网络连通状态。因此,通过实施该可选的方式,第一abs装置能够区分是通信链路故障还是dc故障导致的第一dc和第二dc之间网络不连通,第一abs装置能够准确地确定第一dc和第二dc之间的通信链路是否发生故障。

可选的,第一abs装置为第一dc包括的多个abs装置中的主用装置,多个abs装置中除主用装置之外的abs装置为备用装置;相应地,第一abs装置检测第一dc和第二dc之间的第一网络连通状态的具体实施方式为:当第一abs装置探测第一dc和第二dc之间的网络不连通时,确定探测装置队列,探测装置队列包括主用装置和至少一个备用装置,探测装置队列用于探测与第二dc之间的网络连通性;若第一abs装置检测到探测装置队列中所有装置探测第一预设次数的探测结果均为网络不连通,则第一abs装置确定第一dc和第二dc之间的第一网络连通状态为不连通状态;若第一abs装置检测到探测装置队列中存在任意一个装置在探测次数不超过第一预设次数下存在一个探测结果为网络连通,则第一abs装置确定第一dc和第二dc之间的第一网络连通状态为连通状态。

通过实施该可选的方式,可以避免因为网络闪断和单个进程(第一abs装置)探测错误而导致误判网络中断,可以准确地判断出网络确实发生中断。

可选的,第一状态信息和第二状态信息包括无故障的业务模块的权重、无故障的业务模块的数量和主用业务模块的数量中的至少一种,权重用于指示业务模块的重要程度。

通过实施该可选的实施方式,能够根据各个dc的业务模块的实际状态来确定后续提供业务的dc,可以灵活地确定出合适的dc提供后续的业务。

可选的,第一状态信息和第二状态信息包括无故障的业务模块的权重,第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁的具体实施方式为:若第一状态信息包括的权重之和大于第二状态信息包括的权重之和,则将第一dc后续的业务提供能力裁决为能够提供业务;若第一状态信息包括的权重之和小于第二状态信息包括的权重之和,则将第一dc后续的业务提供能力裁决为不能提供业务。

由于权重用于指示业务模块的重要程度,权重越高业务模块的重要程度越高,业务模块提供的业务越关键。因此,通过实施该可选的实施方式,最后裁决的用于提供后续业务的dc可提供关键性的业务。

可选的,第一状态信息和第二状态信息包括无故障的业务模块的数量,第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁的具体实施方式为:若第一状态信息包括的无故障的业务模块的数量大于第二状态信息包括的无故障的业务模块的数量,则将第一dc后续的业务提供能力裁决为能够提供业务;若第一状态信息包括的无故障的业务模块的数量小于第二状态信息包括的无故障的业务模块的数量,则将第一dc后续的业务提供能力裁决为不能提供业务。

通过实施该可选的实施方式,可保证最后裁决的用于提供后续业务的dc能够提供更多的业务。

可选的,第一状态信息和第二状态信息包括主用业务模块的数量,第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁的具体实施方式为:若第一状态信息包括的主用业务模块的数量大于第二状态信息包括的主用业务模块的数量,则将第一dc后续的业务提供能力裁决为能够提供业务;若第一状态信息包括的主用业务模块的数量小于第二状态信息包括的主用业务模块的数量,则将第一dc后续的业务提供能力裁决为不能提供业务。

dc被仲裁为能够提供业务之后,备用业务模块将切换至主用业务模块。若dc中主用业务模块的数量较多,则只需将少量的备用业务模块将切换至主用业务模块。因此,通过实施该可选的实施方式,能够减少备用业务模块到主用业务模块的切换,有利于快速提供业务。

可选的,若在第一预设时间段内确定探测装置队列的次数达到第二预设次数,并且在第二预设时间段内业务模块发生第三预设次数的主备切换,则第一abs装置增长业务模块的心跳超时时长。

在现有的实际应用中,网络qos较差时,可能会造成主备业务模块的频繁切换,对业务模块集群也会造成影响,集群成员业务模块频繁发生重新选举,会影响系统的稳定性。因此,通过实施该可选的实施方式,在检测到网络质量较差,并且主备业务模块的频繁切换时,可增长业务模块的心跳超时时长,以减少业务模块的切换频率,提升系统的稳定性。

可选的,若在第一预设时间段内确定探测装置队列的次数达到第二预设次数,并且在第二预设时间段内业务模块发生第三预设次数的主备切换,则第一abs装置增长业务模块的心跳超时时长的具体实施方式为:若在第一预设时间段内确定探测装置队列的次数达到第二预设次数,则第一abs装置获取网络qos参数;若网络qos参数大于预设阈值,并且在第二预设时间段内业务模块发生第三预设次数的主备切换,则第一abs装置增长业务模块的心跳超时时长。

网络qos参数大于预设阈值,则证明网络质量较差。通过在检测到第一预设时间段内确定探测装置队列的次数达到第二预设次数时,再获取qos参数来确认是否是网络质量下降,可更准确地确定是否网络质量较差。

第二方面,提供了一种abs装置,该abs装置可执行上述第一方面或第一方面可选的实施方式中的方法。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元。该单元可以是软件和/或硬件。基于同一发明构思,该abs装置解决问题的原理以及有益效果可以参见上述第一方面或第一方面可选的实施方式中以及有益效果,重复之处不再赘述。

第三方面,提供了一种abs装置,该abs装置包括:处理器、存储器、通信接口;处理器、通信接口和存储器相连;可选的,通信接口可以为收发器。通信接口用于实现与其他abs装置之间的通信。其中,一个或多个程序被存储在存储器中,该处理器调用存储在该存储器中的程序以实现上述第一方面或第一方面可选的实施方式中的方案,该abs装置解决问题的实施方式以及有益效果可以参见上述第一方面或第一方面可选的实施方式以及有益效果,重复之处不再赘述。

第四方面,提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的可选的实施方式中的方法。

第五方面,提供了一种abs装置的芯片产品,执行上述第一方面或第一方面的任意可选的实施方式中的方法。

第六方面,提供了一种计算机程序存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面的方法或第一方面的可选的实施方式中的方法。

第七方面,提供了一种系统,该系统包括第二abs装置和第三方面所述的abs装置。

附图说明

图1和图2是现有的一种数据中心的结构示意图;

图3是本申请实施例提供的一种通信系统的示意图;

图4是本申请实施例提供的一种nfv的系统架构示意图;

图5是本申请实施例提供的一种仲裁方法的流程示意图;

图6是本申请实施例提供的一种数据中心的结构示意图;

图7是本申请实施例提供的另一种通信系统的示意图;

图8是本申请实施例提供的另一种仲裁方法的流程示意图;

图9是本申请实施例提供的又一种仲裁方法的流程示意图;

图10是本申请实施例提供的探测装置队列探测网络连通性的示意图;

图11是本申请实施例提供的一种探测装置队列探测网络连通性的示意图;

图12是本申请实施例提供的一种abs装置的结构示意图;

图13是本申请实施例提供的另一种abs装置的结构示意图。

具体实施方式

下面结合附图对本申请具体实施例作进一步的详细描述。

本申请实施例提供了一种仲裁方法及相关装置,能够在两个数据中心之间的通信链路出现故障时,灵活地仲裁出合理的数据中心提供业务。

为了能够更好地理解本申请实施例,下面对本申请实施例的通信系统进行说明。

图3是本申请实施例提供的一种通信系统的示意图。如图3所示,该通信系统包括第一dc和第二dc。第一dc与第二dc相连接。其中,第一dc中包括第一仲裁服务(arbitrationservice,abs)装置,第二dc中包括第二abs装置。其中,本申请实施例所涉及的dc也可以指可用区(availabilityzone,az)。

第一dc可只包括一个abs装置,或可以包括多个abs装置,不同的abs装置部署于不同的虚拟机(virtualmachine,vm)或不同的物理机上,第二dc同理。图3以第一dc包括一个第一abs装置,并且第一abs装置部署于虚拟机上为例。若第一dc中包括多个abs装置,则第一abs装置为第一dc中的多个abs装置中的主用abs装置,第一dc中的其他abs装置为备用abs装置。同理,若第二dc中包括多个abs装置,则第二abs装置为第二dc中的多个abs装置中的主用abs装置,第二dc中的其他abs装置为备用abs装置。可选的,可通过bully算法从dc中的多个abs装置确定主用abs装置。

第一dc的主用abs装置用于检测第一dc中的业务模块的状态信息,在检测到第一dc和第二dc之间的通信链路发生故障时,第一dc的主用abs装置根据自身检测到的业务模块的状态信息和第二dc的主用abs装置检测到的业务模块的状态信息对第一dc的业务提供能力进行仲裁。同理,第二dc的主用abs装置根据自身检测到的业务模块的状态信息和第一dc的主用abs装置检测到的业务模块的状态信息对第二dc的业务提供能力进行仲裁。在主用abs装置出现故障时,将一个备用abs装置升级为主用abs装置,继续提供仲裁服务。因此,通过在一个dc中部署多个abs装置,有利于提高仲裁的可靠性。

第一dc和第二dc还可包括多个业务模块。其中业务模块为能够提供业务的模块,该业务可以为电信业务,电商业务等。业务模块可与abs装置部署于不同的虚拟机或物理机上。第一dc和第二dc具有相同的业务模块。例如,如图3所示,第一dc具有业务模块1~6,第二dc也具有业务模块1~4。业务模块1~4用于提供业务1~4,业务1~4为不同的业务。第一dc中业务模块1和2为主用业务模块,第一dc中业务模块3和4为备用业务模块。第二dc中业务模块3和4为主用业务模块,第二dc中业务模块1和2为备用业务模块。备用业务模块用于在主用业务模块发生故障时,升级为主用业务模块以继续为用户提供业务。例如,第一dc中主用的业务模块1故障了,就升级第二dc中的业务模块1为主用业务模块。或者,一个dc中也可包括多个提供相同业务的业务模块。例如,第一dc中可包括两个业务模块1,第二dc中也可包括两个业务模块1。这四个业务模块1中只有一个业务模块1为主用业务模块,其他都为备用业务模块。

其中,第一dc和第二dc的系统架构可以为nfv架构或其他系统架构,本申请实施例不做限定。例如,第一dc和第二dc中的业务模块用于提供电信业务时,第一dc和第二dc的系统架构可以为nfv。若第一dc和第二dc中的业务模块用于提供其他业务,第一dc和第二dc的系统架构可以为其他系统架构。第一dc和第二dc中的业务模块用于提供电信业务时,可将一套nfv系统跨第一dc和第二dc部署,或在第一dc和第二dc分别部署一套nfv系统。

图4是nfv的系统架构示意图,该nfv系统400可以在各种网络中使用,例如在一个数据中心网络、运营商网络或局域网来实现。所述nfv系统400包括一个nfv管理和编排系统(nfvmanagementandorchestration,nfvmano)401、nfv基础设施层(nfvinfrastructure,nfvi)430、多个虚拟网络功能(virtualnetworkfunction,vnf)408、多个网元管理(elementmanagement,em)422、网络服务、vnf和基础设施描述(vnfandinfrastructuredescription)426,以及业务支持管理系统(operation-supportsystem/businesssupportsystem,oss/bss)424。其中,nfv管理和编排系统401包括nfv编排器(nfvorchestrator,nfvo)402,一个或多个vnfm(vnfmanager,vnfm)404和虚拟化基础设施管理器(virtualizedinfrastructuremanager,vim)406。nfvi430包括计算硬件412、存储硬件414、网络硬件416、虚拟化层(virtualizationlayer)、虚拟计算410、虚拟存储418和虚拟网络420。网路服务、vnf和基础设施描述426和oss/bss424在etsigsnfv002v1.1.1标准中有进一步的讨论。

nfv管理和编排系统(nfvmano)401用于执行对vnf408和nfvi430的监视和管理。nfvo402可以实现在nfvi430上的网络服务(如l2和l3vpn服务),也可以执行来自一个或多个vnfm404的资源相关请求,发送配置信息到vnfm404,并收集vnf408的状态信息。另外,nfvo402可以与vim406通信,以实现资源的分配和/或预留以及交换虚拟化硬件资源的配置和状态信息。所述vnfm404可以管理一个或多个vnf408。vnfm404可以执行各种管理功能,如实例化、更新、查询、缩放和/或终止vnf408等。vim406可以执行资源管理的功能,例如管理基础设施资源的分配(例如增加资源到虚拟容器)和操作功能(如收集nfvi故障信息)。所述vnfm404和vim406可以相互通信进行资源分配和交换虚拟化硬件资源的配置和状态信息。

所述nfvi430包括硬件资源、软件资源或两者的组合来完成虚拟化环境的部署。换句话说,硬件资源和虚拟化层用于提供虚拟化的资源,例如作为虚拟机和其它形式的虚拟容器,用于vnf408。硬件资源包括计算硬件412、存储硬件414和网络硬件416。计算硬件412可以是市场上现成的硬件和/或用户定制的硬件,用来提供处理和计算资源。存储硬件414可以是网络内提供的存储容量或驻留在存储硬件414本身的存储容量(位于服务器内的本地存储器)。在一个实现方案中,计算硬件412和存储硬件414的资源可以被集中在一起。网络硬件416可以是交换机、路由器和/或配置成具有交换功能的任何其他网络设备。网络硬件416可以横跨多个域,并且可以包括多个由一个或一个以上传输网络互连的网络。

nfvi430里面的虚拟化层可以从物理层抽象硬件资源和解耦vnf408,以便向vnf408提供虚拟化资源。虚拟资源层包括虚拟计算410,虚拟存储器418和虚拟网络420。虚拟计算410和虚拟存储418可以以虚拟机、和/或其他虚拟容器的形式提供给vnf408。例如,一个或一个以上的vnf408可以部署在一个虚拟机(virtualmachine)上。虚拟化层抽象网络硬件416从而形成虚拟网络420,虚拟网络420可以包括虚拟交换机(virtualswitch),所述虚拟交换机用来提供虚拟机和其他虚拟机之间的连接。此外,网络硬件416中的传输网络,可以采用集中式控制平面和一个单独的转发平面(如软件定义网络,sdn)虚拟化。

如图4所示,vnfm404可以与vnf408和em422交互来对vnf的生命周期进行管理以及交换配置和状态信息。vnf408可以被配置为通过一个物理网络设备执行的至少一个网络功能的虚拟化。例如,在一个实现方案中,所述vnf408可以经过配置以提供ims网络中的不同网元具备的功能,如p-scscf,s-cscf或hss的网络功能等。em422经过配置以对一个或一个以上的vnf408进行管理。

以下对本申请所提供的仲裁方法及相关装置进行详细地介绍。

请参见图5,图5是本申请实施例提供的一种仲裁方法的流程示意图。如图5所示,该仲裁方法包括如下501~508部分,其中:

501、第一abs装置检测第一dc中业务模块的第一状态信息。

502、第二abs装置检测第二dc中业务模块的第二状态信息。

可选的,第一abs装置可以预设时间周期来检测第一状态信息。或者,第一abs装置可在确定第一dc和第二dc之间的通信链路出现故障时,检测第一状态信息。

或者,第一abs装置可先检测第一dc和第二dc之间的网络是否连通。网络不连通的原因可能有两种情况,一种是第一dc和第二dc之间的通信链路出现故障,另一种情况是dc整体故障。第一abs装置确定第一dc和第二dc之间的网络不连通时,再进一步确定是否第一dc和第二dc之间的通信链路出现故障。因此,可在第一abs装置在确定第一dc和第二dc之间的网络不连通时,就检测第一状态信息。

同理,第二abs装置可以预设时间周期来检测第二状态信息。或者,第二abs装置可在确定第一dc和第二dc之间的通信链路出现故障时,检测第二状态信息。或者,第二abs装置可在确定第一dc和第二dc之间的网络不连通时,检测第二状态信息。

503、第一abs装置确定第一dc和第二dc之间的通信链路出现故障时,获取第二状态信息。

504、第一abs装置根据第一状态信息和第二状态信息仲裁第一dc后续的业务提供能力。

505、第二abs装置确定第一dc和第二dc之间的通信链路出现故障时,获取第一状态信息。

可选的,第一abs装置确定第一dc和第二dc之间的通信链路出现故障时,可通过图8所描述的方法获取第二状态信息。第二abs装置确定第一dc和第二dc之间的通信链路出现故障时,可通过图8所描述的方法获取第一状态信息。

或者,第一abs装置确定第一dc和第二dc之间的通信链路出现故障时,可通过如下方式获取第二状态信息,第二abs装置确定第一dc和第二dc之间的通信链路出现故障时,可通过如下方式获取第一状态信息:

第一abs装置以预设时间周期来检测第一状态信息,第二abs装置也以预设时间周期来检测第二状态信息。第一abs装置检测到第一状态信息之后,发送第一状态信息至第二abs装置。第二abs装置缓存最近接收到的第一状态信息。第二abs装置检测到第二状态信息之后,发送第二状态信息至第一abs装置。第一abs装置缓存最近接收到的第二状态信息。第一abs装置确定第一dc和第二dc之间的通信链路出现故障时,获取缓存的第二状态信息,并根据自己检测到的第一状态信息和第二状态信息仲裁第一dc的业务提供能力。同理,第二abs装置确定第一dc和第二dc之间的通信链路出现故障时,获取缓存的第一状态信息,并根据自己检测到的第二状态信息和第一状态信息仲裁第二dc的业务提供能力。

第一abs装置确定第一dc和第二dc之间的通信链路出现故障时,还可通过其他的方式获取第二状态信息。第二abs装置确定第一dc和第二dc之间的通信链路出现故障时,还可通过其他的方式获取第一状态信息,本申请实施例不做限定。

506、第二abs装置根据第一状态信息和第二状态信息仲裁第二dc后续的业务提供能力。

仲裁dc后续的业务提供能力,即裁决该dc后续是否能够提供业务,即该dc是否能够存活。

其中,第一abs装置的仲裁结果为第一dc后续能够提供业务时,第二abs装置的仲裁结果为第二dc后续不能提供业务。第一abs装置的仲裁结果为第一dc后续不能提供业务时,第二abs装置的仲裁结果为第二dc后续能够提供业务。也就是说,第一dc和第二dc中由一个dc提供业务,另一个dc不提供业务。

第一abs装置的仲裁结果为第一dc后续能够提供业务,第二abs装置的仲裁结果为第二dc后续不能提供业务时,第二dc中所有主业务模块降为备用业务模块,第一dc中主业务模块不变,备用业务模块升级为主业务模块。例如,如图3所示,第一dc中业务模块1和2为主用业务模块,第一dc中业务模块3和4为备用业务模块。第二dc中业务模块3和4为主用业务模块,第二dc中业务模块1和2为备用业务模块。第二dc将业务模块3和4降为备用业务模块,第一dc将业务模块3和4升级为主用业务模块。

同理,第一abs装置的仲裁结果为第一dc后续不能提供业务,第二abs装置的仲裁结果为第二dc后续能够提供业务时,第一dc中所有主业务模块降为备用业务模块,第二dc中主业务模块不变,将备用业务模块升级为主业务模块。

可选的,如图6所示,若第一dc和第二dc的系统架构为nfv架构,则第一dc和第二dc中还可包括平台管理单元(platformmanagementunit,pmu)。其中pmu和业务模块均属于图4所示的vnf408的单元,即vnf408可包括pmu和业务模块。主用pmu用于在第一dc和第二dc未发生网络中断,但第一dc或第二dc中的业务模块发生局部故障时,对业务模块进行仲裁,裁决哪一个备用业务模块升主。abs装置用于网络中断时,裁决哪一个dc能够继续提供业务。即仲裁分为两层,第一层是abs装置,负责dc间的仲裁,第二层是pmu,负责dc内的仲裁。

例如,在第一dc和第二dc未发生网络中断时,第一dc中的主用业务模块中业务模块1故障了。第二dc中的仲裁域c中的主用pmu裁决第二dc中业务模块1升级为主用业务模块。若由于第一dc整体故障而导致第一dc和第二dc之间发生网络中断,第二abs装置裁决由第二dc提供后续业务。若由于通信链路故障而导致第一dc和第二dc之间发生网络中断,第一abs装置和第二abs装置根据第一状态信息和第二状态信息裁决后续可以提供业务的dc。

层级型仲裁可达到以下效果:1、节省开发成本,对于dc内的仲裁,可以利用现有的pmu仲裁方案,dc间的仲裁为新引入方案,两者通过接口进行通信。层级型仲裁可以最大可能利用原有方案,节省开发成本。2、满足dc内和dc间对仲裁速度要求的不同,dc内的网络延时比较短,要求dc内的仲裁速度比较快,dc间的网络延时相对比较长,因此对dc间的仲裁速度的要求要慢一些,层级型仲裁可以很好的解决这个问题。

在一种可能的实施方式中,第一状态信息和第二状态信息包括无故障的业务模块的权重、无故障的业务模块的数量和主用业务模块的数量中的至少一种,该权重用于指示业务模块的重要程度,权重越高业务模块的重要程度越高。或者,第一状态信息和第二状态信息中的无故障的业务模块的数量可替换为无故障的业务模块的标识,abs装置进行仲裁时,先根据无故障的业务模块的标识的数量确定无故障的业务模块的数量,再根据无故障的业务模块的数量进行仲裁。或者,第一状态信息和第二状态信息中的主用业务模块的数量可替换为主用业务模块的标识,abs装置进行仲裁时,先根据主用业务模块的标识的数量确定主用业务模块的数量,在根据主用业务模块的数量进行仲裁。或者,第一状态信息和第二状态信息还可包括其他信息,本申请实施例不做限定。

通过实施该可能的实施方式,能够根据各个dc的业务模块的实际状态来确定后续提供业务的dc,可以灵活地确定出合适的dc提供后续的业务。

例如,如图3所示,第一dc中包括业务模块1~4,第二dc中包括业务模块1~4。业务模块1~4的权重分别为10、20、30和40。第一dc中业务模块1~4均未故障。第二dc中业务模块1和业务模块4故障。因此,若第一状态信息包括第一dc中无故障的业务模块的权重,则第一状态信息中的权重为100,即10+20+30+40。若第二状态信息包括第一dc中无故障的业务模块的权重,则第二状态信息中的权重为50,即20+30。

若第一状态信息包括无故障的业务模块的数量,则第一状态信息中的无故障的业务模块的数量为4。若第二状态信息包括无故障的业务模块的数量,则第二状态信息中的无故障的业务模块的数量为2。

若第一状态信息包括主用业务模块的数量,则第一状态信息中的主用业务模块的数量为2。若第二状态信息包括主用业务模块的数量,则第二状态信息中的主用业务模块的数量为1。

可选的,第一状态信息和第二状态信息包括无故障的业务模块的权重,步骤504,即第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁的具体实施方式为:若第一状态信息包括的权重之和大于第二状态信息包括的权重之和,则将第一dc后续的业务提供能力裁决为能够提供业务;若第一状态信息包括的权重之和小于第二状态信息包括的权重之和,则将第一dc后续的业务提供能力裁决为不能提供业务。第二abs装置的仲裁原理相同,在此不赘述。

由于权重用于指示业务模块的重要程度,权重越高业务模块的重要程度越高,业务模块提供的业务越关键。因此,通过实施该可选的实施方式,最后裁决的用于提供后续业务的dc可提供关键性的业务。

例如,第一状态信息中的权重为100,第二状态信息中的权重为50,则第一abs装置将第一dc后续的业务提供能力裁决为能够提供业务。第二abs装置将第二dc后续的业务提供能力裁决为不能提供业务。因此,后续只由第一dc提供业务。

可选的,第一状态信息和第二状态信息包括无故障的业务模块的数量,步骤504,即第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁的具体实施方式为:若第一状态信息包括的无故障的业务模块的数量大于第二状态信息包括的无故障的业务模块的数量,则将第一dc的业务提供能力裁决为能够提供业务;若第一状态信息包括的无故障的业务模块的数量小于第二状态信息包括的无故障的业务模块的数量,则将第一dc的业务提供能力裁决为不能提供业务。第二abs装置的仲裁原理相同,在此不赘述。

通过实施该可选的实施方式,可保证最后裁决的用于提供后续业务的dc能够提供更多的业务。

例如,第一状态信息中的无故障的业务模块的数量为4,第二状态信息中的无故障的业务模块的数量为2,则第一abs装置将第一dc后续的业务提供能力裁决为能够提供业务。第二abs装置将第二dc后续的业务提供能力裁决为不能提供业务。因此,后续只由第一dc提供业务。

可选的,第一状态信息和第二状态信息包括主用业务模块的数量,步骤504,即第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁的具体实施方式为:若第一状态信息包括的主用业务模块的数量大于第二状态信息包括的主用业务模块的数量,则将第一dc的业务提供能力裁决为能够提供业务;若第一状态信息包括的主用业务模块的数量小于第二状态信息包括的主用业务模块的数量,则将第一dc的业务提供能力裁决为不能提供业务。第二abs装置的仲裁原理相同,在此不赘述。

dc被仲裁为能够提供业务之后,备用业务模块将切换至主用业务模块。若dc中主用业务模块的数量较多,则只需将少量的备用业务模块将切换至主用业务模块。因此,通过实施该可选的实施方式,能够减少备用业务模块到主用业务模块的切换,有利于快速提供业务。

例如,第一状态信息中的主用业务模块的数量为2,第二状态信息中的主用业务模块的数量为1,则第一abs装置将第一dc后续的业务提供能力裁决为能够提供业务。第二abs装置将第二dc后续的业务提供能力裁决为不能提供业务。因此,后续只由第一dc提供业务。

可选的,第一状态信息和第二状态信息包括无故障的业务模块的权重和无故障的业务模块的数量时,第一abs装置可先判断第一状态信息包括的无故障的业务模块的权重是否大于第二状态信息包括的无故障的业务模块的权重,若第一状态信息包括的权重之和大于第二状态信息包括的权重之和,则将第一dc后续的业务提供能力裁决为能够提供业务;若第一状态信息包括的权重之和小于第二状态信息包括的权重之和,则将第一dc后续的业务提供能力裁决为不能提供业务。若第一状态信息包括的权重之和等于第二状态信息包括的权重之和,则判断第一状态信息包括的无故障的业务模块的数量是否大于第二状态信息包括的无故障的业务模块的数量;若第一状态信息包括的无故障的业务模块的数量大于第二状态信息包括的无故障的业务模块的数量,则将第一dc的业务提供能力裁决为能够提供业务;若第一状态信息包括的无故障的业务模块的数量小于第二状态信息包括的无故障的业务模块的数量,则将第一dc的业务提供能力裁决为不能提供业务。第二abs装置的仲裁原理相同,在此不赘述。

通过实施该实施方式,可优先保证最后裁决的用于提供后续业务的dc可提供关键性的业务。当第一dc和第二dc的无故障的业务模块的权重相同时,进一步根据第一dc和第二dc的无故障的业务模块的数量对第一dc后续的业务提供能力进行仲裁,以保证最后裁决的用于提供后续业务的dc能够提供更多的业务。

可选的,第一状态信息和第二状态信息包括无故障的业务模块的权重、无故障的业务模块的数量和主用业务模块的数量时,若第一状态信息包括的权重之和等于第二状态信息包括的权重之和,并且第一状态信息包括的无故障的业务模块的数量等于第二状态信息包括的无故障的业务模块的数量,则第一abs装置判断第一状态信息包括的主用业务模块的数量是否大于第二状态信息包括的主用业务模块的数量;若第一状态信息包括的主用业务模块的数量大于第二状态信息包括的主用业务模块的数量,则将第一dc的业务提供能力裁决为能够提供业务;若第一状态信息包括的主用业务模块的数量小于第二状态信息包括的主用业务模块的数量,则将第一dc的业务提供能力裁决为不能提供业务。第二abs装置的仲裁原理相同,在此不赘述。

通过实施该实施方式,可优先保证最后裁决的用于提供后续业务的dc可提供关键性的业务。当第一dc和第二dc的无故障的业务模块的权重相同时,进一步根据第一dc和第二dc的无故障的业务模块的数量对第一dc后续的业务提供能力进行仲裁,以保证最后裁决的用于提供后续业务的dc能够提供更多的业务。当第一dc和第二dc的无故障的业务模块的数量相同时,再进一步根据第一dc和第二dc的主用业务模块的数量对第一dc后续的业务提供能力进行仲裁,以保证最后裁决的用于提供后续业务的dc能够快速提供业务。

可选的,若第一状态信息包括的权重之和等于第二状态信息包括的权重之和,并且第一状态信息包括的无故障的业务模块的数量等于第二状态信息包括的无故障的业务模块的数量,并且第一状态信息包括的主用业务模块的数量等于第二状态信息包括的主用业务模块的数量,则第一abs装置判断第一dc的机房id是否小于第二dc的机房id,若小于,则将第一dc的业务提供能力裁决为能够提供业务;若大于,则将第一dc的业务提供能力裁决为不能够提供业务。第二abs装置的仲裁原理相同,在此不赘述。

可见,通过实施图5所描述的方法,能够根据各个dc的业务模块的实际状态来确定后续提供业务的dc,可以灵活地确定出合适的dc提供后续的业务。

请参见图7,图7是本申请实施例提供的另一种通信系统的示意图。图7与图3所示的通信系统的不同之处在于,图7除包括图3所示的第一dc和第二dc之外,还包括第三dc。第一dc还包括第一数据同步模块,第二dc包括第二数据同步模块,第三dc包括第三数据同步模块,第一数据同步模块与第三数据同步模块相连,第二数据同步模块与第三数据同步模块相连,第一数据同步模块、第二数据同步模块和第三数据同步模块之间能够进行数据同步。可选的,第一数据同步模块还可与第二数据同步模块相连,即第一数据同步模块、第二数据同步模块和第三数据同步模块两两相连。

第一dc只包括一个abs装置或包括多个abs装置,第二dc同理。图7以第一dc和第二dc包括多个abs装置,第一abs装置和第二abs装置为主用abs装置为例。

可选的,第一数据同步模块和第二数据同步模块可具有一个或多个。第一数据同步模块之间可以相互通信并进行数据同步。第二数据同步模块之间可以相互通信并进行数据同步。例如,图7以第一dc包括多个第一数据同步模块,第二dc包括多个为例。

第一abs装置可将检测到的第一状态信息存入第一数据同步模块中。第一dc与第二dc之间的通信链路发生故障时,第一数据同步模块可将第一状态信息同步至第三数据同步模块,并由第三数据同步模块将第一状态信息同步至第二数据同步模块进行储存。同理,第二abs装置可将检测到的第二状态信息存入第二数据同步模块中。第二数据同步模块可将第二状态信息同步至第三数据同步模块进行储存,再由第三数据同步模块将第二状态信息同步至第一数据同步模块进行储存。也就是说,第一数据同步模块、第二数据同步模块和第三数据同步模块中存储的数据一致。因此,即使第一dc与第二dc之间的通信链路发生故障,第一abs装置也可从第一数据同步模块中读取到第二状态信息。第二abs装置也可从第二数据同步模块中读取到第一状态信息。

可选的,第一数据同步模块、第二数据同步模块和第三数据同步模块可以为etcd或其他可进行数据同步的模块,本申请实施例不做限定。

可选的,abs装置可以与数据同步模块部署于同一虚拟机或物理机上。其中,图7以abs装置和数据同步模块部署于同一个虚拟机为例。或者,abs装置也可以与数据同步模块部署于不同的虚拟机或不同的物理上。

基于图7所示的通信系统,请参见图8,图8是本申请实施例提供的另一种仲裁方法的流程示意图。图8示出了第一abs装置如何获取第二状态信息以及第二abs装置如何获取第一状态信息的一种具体实现方式。如图8所示,该仲裁方法包括如下801~808部分,其中:

801、第一abs装置检测第一dc中业务模块的第一状态信息。

802、第一abs装置将第一状态信息存储至第一数据同步模块中。

803、第二abs装置检测第二dc中业务模块的第二状态信息。

804、第二abs装置将第二状态信息存储至第二数据同步模块中。

805、第一abs装置确定第一dc和第二dc之间的通信链路出现故障时,从第一数据同步模块中读取第二状态信息。

其中,在第一dc和第二dc之间的通信链路出现故障时,第二abs装置存入第二数据同步模块的第二状态信息可通过第三数据同步模块同步到第一数据同步模块。因此,可从第一数据同步模块中读取到由第二abs装置存入第二数据同步模块的第二状态信息。

806、第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁。

807、第二abs装置确定第一dc和第二dc之间的通信链路出现故障时,从第二数据同步模块中读取第一状态信息。

其中,在第一dc和第二dc之间的通信链路出现故障时,第一abs装置存入第一数据同步模块的第一状态信息可通过第三数据同步模块同步到第二数据同步模块。因此,可从第二数据同步模块中读取到由第一abs装置存入第一数据同步模块的第一状态信息。

808、第二abs装置根据第一状态信息和第二状态信息对第二dc后续的业务提供能力进行仲裁。

可见,通过实施图8所描述的方法,由于第一数据同步模块、第二数据同步模块和第三数据同步模块可以数据同步。因此,即使第一dc与第二dc之间的通信链路发生故障,第一abs装置也可从第一数据同步模块中读取到第二状态信息。第二abs装置也可从第二数据同步模块中读取到第一状态信息。

基于图7所示的通信系统,请参见图9,图9是本申请实施例提供的另一种仲裁方法的流程示意图。图9示出了第一abs装置和第二abs装置如何确定第一dc和第二dc之间的通信链路出现故障的一种具体实现方式。如图9所示,该仲裁方法包括如下901~916部分,其中:

901、第一abs装置检测第一dc和第二dc之间的第一网络连通状态。

其中,第一网络连通状态为第一dc到第二dc的网络连通状态。

902、第一abs装置将第一网络连通状态存储至第一数据同步模块中。

903、第一abs装置检测第一dc中业务模块的第一状态信息。

904、第一abs装置将第一状态信息存储至第一数据同步模块中。

905、第二abs装置检测第一dc和第二dc之间的第二网络连通状态。

其中,第二网络连通状态为第二dc到第一dc的网络连通状态。

906、第二abs装置将第二网络连通状态存储至第二数据同步模块中。

907、第二abs装置检测第二dc中业务模块的第二状态信息。

908、第二abs装置将第二状态信息存储至第二数据同步模块中。

909、第一abs装置从第一数据同步模块中读取第二网络连通状态。

其中,第二网络连通状态是第二abs装置存入第二数据同步模块,并通过第三数据同步模块同步到第一数据同步模块中的。

910、若第一网络连通状态和第二网络连通状态均为不连通状态,则第一abs装置确定第一dc和第二dc之间的通信链路出现故障。

911、第一abs装置确定第一dc和第二dc之间的通信链路出现故障时,从第一数据同步模块中第二状态信息。

其中,第二状态信息是第二abs装置存入第二数据同步模块,并通过第三数据同步模块同步到第一数据同步模块中的。

912、第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁。

913、第二abs装置从第二数据同步模块中读取第一网络连通状态。

其中,第一网络连通状态是第一abs装置存入第一数据同步模块,并通过第三数据同步模块同步到第二数据同步模块中的。

914、若第一网络连通状态和第二网络连通状态均为不连通状态,则第二abs装置确定第一dc和第二dc之间的通信链路出现故障。

915、第二abs装置确定第一dc和第二dc之间的通信链路出现故障时,从第二数据同步模块中读取第一状态信息。

其中,第一状态信息是第一abs装置存入第一数据同步模块,并通过第三数据同步模块同步到第二数据同步模块中的。

916、第二abs装置根据第一状态信息和第二状态信息对第二dc后续的业务提供能力进行仲裁。

可选的,第一abs装置可以以预设周期来检测第一网络连通状态。第二abs装置可以以周期来检测第二网络连通状态。网络连通状态可以为连通或不连通状态。

可选的,第一abs装置可以以预设周期从第一数据同步模块中读取第二网络连通状态,第二abs装置可以以预设周期从第二数据同步模块中读取第一网络连通状态。或者,第一abs装置可以在检测到第一网络连通状态为不连通时,从第一数据同步模块中读取第二网络连通状态。第二abs装置可以在检测到第二网络连通状态为不连通时,从第二数据同步模块中读取第一网络连通状态。

可选的,第一abs装置可以预设时间周期来检测第一状态信息。或者,第一abs装置可在确定第一dc和第二dc之间的通信链路出现故障时,检测第一状态信息。或者,第一abs装置可在确定第一网络连通状态为不连通时,检测第一状态信息。第二abs装置检测第二状态信息同理。

举例来说,第一abs装置以预设周期5毫秒来检测第一网络连通状态,并将第一网络连通状态存入第一数据同步模块。第二abs装置以预设周期5毫秒来检测第二网络连通状态,并将第二网络连通状态存入第二数据同步模块。第一abs装置以预设周期6毫秒来检测第一状态信息,并将第一状态信息存入第一数据同步模块。第二abs装置以预设周期6毫秒来检测第二状态信息,并将第二状态信息存入第二数据同步模块。第一abs装置以预设周期6毫秒从第一数据同步模块中读取最近存入的第二网络连通状态,第二abs装置以预设周期6毫秒从第二数据同步模块中读取最近存入的第一网络连通状态。

若第一abs装置确定第一网络连通状态和第二网络连通状态均为不连通状态,则第一abs装置确定第一dc和第二dc之间的通信链路出现故障。第一abs装置确定第一dc和第二dc之间的通信链路出现故障时,从第一数据同步模块中读取最近存入的第二状态信息。第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁。若第二abs装置确定第一网络连通状态和第二网络连通状态均为不连通状态,则第二abs装置确定第一dc和第二dc之间的通信链路出现故障。第二abs装置确定第一dc和第二dc之间的通信链路出现故障时,从第二数据同步模块中读取最近存入的第一状态信息。第二abs装置根据第一状态信息和第二状态信息对第二dc后续的业务提供能力进行仲裁。

再举例来说,第一abs装置以预设周期5毫秒来检测第一网络连通状态,并将第一网络连通状态存入第一数据同步模块。第二abs装置以预设周期5毫秒来检测第二网络连通状态,并将第二网络连通状态存入第二数据同步模块。第一abs装置在检测到第一网络连通状态为不连通时,从第一数据同步模块中读取最近存入的第二网络连通状态。第二abs装置在检测到第二网络连通状态为不连通时,从第二数据同步模块中读取最近存入的第一网络连通状态。若第一abs装置确定第一网络连通状态和第二网络连通状态均为不连通状态,则第一abs装置确定第一dc和第二dc之间的通信链路出现故障。第一abs装置确定第一dc和第二dc之间的通信链路出现故障时,第一abs装置检测第一状态信息,并将第一状态信息存入第一数据同步模块。若第二abs装置确定第一网络连通状态和第二网络连通状态均为不连通状态,则第二abs装置确定第一dc和第二dc之间的通信链路出现故障。第二abs装置确定第一dc和第二dc之间的通信链路出现故障时,第二abs装置检测第二状态信息,并将第二状态信息存入第二数据同步模块。

第一abs装置将第一状态信息存入第一数据同步模块之后,从第一数据同步模块中读取第二状态信息。第一abs装置根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁。第二abs装置将第二状态信息存入第二数据同步模块之后,从第二数据同步模块中读取第一状态信息。第二abs装置根据第一状态信息和第二状态信息对第二dc后续的业务提供能力进行仲裁。

可选的,若第一abs装置检测到第一数据同步模块中不存在第二状态信息,则第一abs装置确定第二dc故障,第一abs装置可将第一dc裁决为后续能够提供业务的dc,第一dc的备用业务模块升主。若第一状态信息和第二状态信息是以预设时间周期检测并存入的数据同步模块,存入第一数据同步模块、第二数据同步模块和第三数据同步模块中的业务模块的状态信息具有存活时间。若业务模块的状态信息的存入时长超过存活时间,则清除存入时长超过存活时间的业务模块的状态信息。可选的,存活时间可以为一个预设时间周期的时长。

网络不连通可能有两种情况,一种是第一dc和第二dc之间的通信链路出现故障,另一种情况是dc整体故障。若第一dc或第二dc未发生整体故障,仅仅是第一dc和第二dc之间的通信链路发生故障,则第一dc会检测第一网络连通状态,第二dc会检测第二网络连通状态。第一dc可从第一数据同步模块中读取到第二网络连通状态,第二dc可从第二数据同步模块中读取到第一网络连通状态,并且第一网络连通状态和第二网络连通状态肯定都是不连通。若第二dc发生整体故障,则第二dc不会检测第二网络连通状态,第一dc从第一数据同步模块中读取不到第二网络连通状态。因此,通过实施图9所描述的方法,第一abs装置能够区分是通信链路故障还是dc故障导致的第一dc和第二dc之间网络不连通。第一abs装置能够准确地确定第一dc和第二dc之间的通信链路是否发生故障。

在一种可能的实施方式中,第一abs装置为第一dc包括的多个abs装置中的主用装置,该多个abs装置中除主用装置之外的abs装置为备用装置;第一abs装置检测第一dc和第二dc之间的第一网络连通状态的具体实施方式为:当第一abs装置探测第一dc和第二dc之间的网络不连通时,确定探测装置队列,探测装置队列包括第一abs装置和至少一个备用装置,探测装置队列用于探测与第二dc之间的网络连通性;若第一abs装置检测到探测装置队列中所有装置探测第一预设次数的探测结果均为网络不连通,则第一abs装置确定第一dc和第二dc之间的第一网络连通状态为不连通状态;若第一abs装置检测到探测装置队列中存在任意一个装置在探测次数不超过第一预设次数下存在一个探测结果为网络连通,则第一abs装置确定第一dc和第二dc之间的第一网络连通状态为连通状态。第二abs装置确定第二网络连通状态同理。

举例来说,如图10所示,第一abs装置以预设时间周期向第二abs装置发送探测信号,以探测第一dc到第二dc的网络是否连通。若第一abs装置在预设时间内接收第二abs装置发送的反馈信息,则第一abs装置确定第一dc到第二dc的网络连通。反之,确定第一dc到第二dc的网络不连通。若网络连通,则确定第一网络连通状态为连通。若网络不连通,则确定探测装置队列,以通过探测装置队列再次确定第一dc到第二dc的网络连通。第二abs装置同理。如图10所示,第一abs装置确定探测装置队列包括第一abs装置、备用abs装置1和备用abs装置2。第二abs装置确定探测装置队列包括第二abs装置、备用abs装置3和备用abs装置4。探测装置队列中包括的abs装置的数量可以是预设的数量。探测装置队列中包括的备用abs装置可以是随机确定的。如图10所示,第一abs装置和第二abs装置确定探测装置队列之后,第一abs装置向第二abs装置发送探测信号,以探测第一dc到第二dc的网络是否连通。第二abs装置向第一abs装置发送探测信号,以探测第二dc到第一dc的网络是否连通。备用abs装置1向备用abs装置3发送探测信号,以探测第一dc到第二dc的网络是否连通。备用abs装置3向备用abs装置1发送探测信号,以探测第二dc到第一dc的网络是否连通。备用abs装置2向备用abs装置4发送探测信号,以探测第一dc到第二dc的网络是否连通。备用abs装置4向备用abs装置2发送探测信号,以探测第二dc到第一dc的网络是否连通。如图10所示,备用abs装置会将探测结果发生至所在dc的主用abs装置。

若第一abs装置探测第一预设次数3次均为不连通,并且备用abs装置1探测第一预设次数3次均为不连通,并且备用abs装置2探测第一预设次数3次均为不连通,则第一abs装置确定第一dc到第二dc的第一网络连通状态为不连通。若第二abs装置探测第一预设次数3次均为不连通,并且备用abs装置3探测第一预设次数3次均为不连通,并且备用abs装置4探测第一预设次数3次均为不连通,则第二abs装置确定第二dc到第一dc的第二网络连通状态为不连通。可选的,探测装置队列每次探测之间的时间间隔为递增的时间间隔。

若第一abs装置或备用abs装置1或备用abs装置2在第一次探测或第二次探测或第三次探测时为连通,则第一abs装置确定第一dc到第二dc的第一网络连通状态为连通。若第二abs装置或备用abs装置3或备用abs装置4在第一次探测或第二次探测或第三次探测时为连通,则第一abs装置确定第一dc到第二dc的第一网络连通状态为连通。

通过实施该可能的实施方式,可以避免因为网络闪断和单个进程(第一abs装置)探测错误而导致误判网络中断,可以准确地判断出网络确实发生中断。

在一种可能的实施方式中,若在第一预设时间段内确定探测装置队列的次数达到第二预设次数,并且在第二预设时间段内业务模块发生第三预设次数的主备切换,则第一abs装置增长业务模块的心跳超时时长。其中,第一预设时间段可以与第二预设时间段相同或不同。其中,该业务模块可以是任意一个业务模块。

其中,第一dc中的业务模块可以预设周期向第二dc中的业务模块发送心跳信息的时间间隔。例如,心跳时长为10毫秒,则每隔10毫秒第一dc中的主用业务模块1向第二dc中的备用业务模块1发送一个心跳信息。若第二dc中的备用业务模块1在心跳超时时长15毫秒内未接收到第一dc中的主用业务模块1发送的心跳信息,则第一dc中的主用业务模块1会切换为备用业务模块,第二dc中的备用业务模块1会切换为主用业务模块。因此,心跳超时时长越短,越容易发生主备业务模块切换。心跳超时时长越长,越不容易发生主备业务模块切换。

可先检测在第一预设时间段内确定探测装置队列的次数是否达到第二预设次数。若达到第二预设次数,再检测在第二预设时间段内业务模块是否发生第三预设次数的主备切换。或者也可先检测在第二预设时间段内业务模块是否发生第三预设次数的主备切换。若达到第三预设次数的主备切换,再检测在第一预设时间段内确定探测装置队列的次数是否达到第二预设次数。在第一预设时间段内确定探测装置队列的次数达到第二预设次数时,则证明网络质量较差。在第二预设时间段内业务模块发生第三预设次数的主备切换时,则证明主备业务模块的频繁切换。

在现有的实际应用中,网络qos较差时,可能会造成主备业务模块的频繁切换,对业务模块集群也会造成影响,集群成员业务模块频繁发生重新选举,会影响系统的稳定性。因此,通过实施该可能的实施方式,在检测到网络质量较差,并且主备业务模块的频繁切换时,可增长业务模块的心跳超时时长,以减少业务模块的切换频率,提升系统的稳定性。

举例来说,如图11所示,在第一预设时间段100毫秒内,第一abs装置3次确定探测装置队列,以进行网络连通性探测。第一次确定探测装置队列之后,进行了两次探测,在第二次探测时探测装置队列中至少一个abs装置探测到网络连通。第二次确定探测装置队列之后,进行了三次探测,在第三次探测时探测装置队列中至少一个abs装置探测到网络连通。第三次确定探测装置队列之后,进行了一次探测,在第一次探测时探测装置队列中至少一个abs装置探测到网络连通。因此,第一abs装置总共3次确定探测装置队列。如果第二预设次数为3,则第一abs装置检测在第二预设时间段100毫秒之内,业务模块是否发生第三预设次数5次的主备切换。若业务模块发生第三预设次数5次的主备切换,即主备业务模块的频繁切换,则增长该业务模块的心跳超时时长,以减少业务模块的切换频率。

可选的,可先检测在预设时间段内确定探测装置队列的次数是否达到第二预设次数。若达到第二预设次数,第一abs装置获取网络qos参数;若网络qos参数大于预设阈值,并且第一abs装置确定在第二预设时间段内业务模块发生第三预设次数的主备切换,则第一abs装置增长业务模块的心跳超时时长。其中,网络qos参数可以是丢包率、时延等。其中,第一abs装置可在检测在预设时间段内确定探测装置队列的次数是否达到第二预设次数之前,检测在第二预设时间段内业务模块是否发生第三预设次数的主备切换。或者,在第一abs装置可在检测到网络qos参数大于预设阈值时,检测在第二预设时间段内业务模块是否发生第三预设次数的主备切换。

网络qos参数大于预设阈值,则证明网络质量较差。通过在检测到第一预设时间段内确定探测装置队列的次数达到第二预设次数时,再获取qos参数来确认是否是网络质量下降,可更准确地确定是否网络质量较差。

可选的,第一abs装置可根据网络qos参数与心跳超时时长的增长量的对应关系,增长业务模块的心跳超时时长。例如,网络qos参数越大,对应的增长量可以越大。这样可以灵活地增长心跳超时时长。当然也可以将心跳超时时长增长为一个固定值,本申请实施例不做限定。

可选的,在增加业务模块的心跳时长之后,在检测到在预设时间段内确定探测装置队列的次数小于第二预设次数时,可将业务模块的心跳时长恢复到默认值。

本发明实施例可以根据上述方法示例对设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

请参见图12,图12是本发明实施提供的一种abs装置。该abs装置可以是运行于设备中的一个计算机程序(包括程序代码),也可以是包含在设备中的一个实体装置。该abs装置处于第一dc,第一dc与第二dc相连接,第二dc包括第二abs装置,其中,该abs装置包括:检测模块1201、确定模块1202、获取模块1203和仲裁模块1204。其中:

检测模块1201,用于检测第一dc中的业务模块的第一状态信息。获取模块1203,用于确定模块1202确定第一dc和第二dc之间的通信链路出现故障时,获取第二状态信息,第二状态信息为第二abs装置检测到的第二c中的业务模块的状态信息。仲裁模块1204,用于根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁。

可选的,第一dc还包括第一数据同步模块,第二dc包括第二数据同步模块,第一数据同步模块与处于第三dc中的第三数据同步模块相连,第二数据同步模块与第三数据同步模块相连,第一数据同步模块、第二数据同步模块和第三数据同步模块之间数据同步;abs装置还包括:存储模块,用于将第一状态信息存储至第一数据同步模块中;获取模块1203获取第二状态信息的方式具体为:从第一数据同步模块中读取第二状态信息,该第二状态信息是由所述第二abs装置存入所述第二数据同步模块,并通过所述第三数据同步模块同步到所述第一数据同步模块中的。

可选的,检测模块1201,还用于检测第一dc和第二dc之间的第一网络连通状态;存储模块,还用于将第一网络连通状态存储至第一数据同步模块中;获取模块1203,还用于从第一数据同步模块中读取第二网络连通状态,第二网络连通状态是第二abs装置检测到的第一dc和第二dc之间的网络连通状态,且所述第二网络连通状态是所述第二abs装置存入所述第二数据同步模块,并通过所述第三数据同步模块同步到所述第一数据同步模块中的;确定模块1202,用于若第一网络连通状态和第二网络连通状态均为不连通状态,则确定第一dc和第二dc之间的通信链路出现故障。

可选的,abs装置为第一dc包括的多个abs装置中的主用装置,多个abs装置中除主用装置之外的abs装置为备用装置;检测模块1201检测第一dc和第二dc之间的第一网络连通状态的方式具体为:当检测模块1201探测第一dc和第二dc之间的网络不连通时,确定探测装置队列,探测装置队列包括主用装置和至少一个备用装置,探测装置队列用于探测与第二dc之间的网络连通性;若检测模块1201检测到探测装置队列中所有装置探测第一预设次数的探测结果均为网络不连通,则确定第一dc和第二dc之间的第一网络连通状态为不连通状态;若检测模块1201检测到探测装置队列中存在任意一个装置在探测次数不超过第一预设次数下存在一个探测结果为网络连通,则确定第一dc和第二dc之间的第一网络连通状态为连通状态。

可选的,第一状态信息和第二状态信息包括无故障的业务模块的权重、无故障的业务模块的数量和主用业务模块的数量中的至少一种,权重用于指示业务模块的重要程度。

可选的,第一状态信息和第二状态信息包括无故障的业务模块的权重,仲裁模块1204根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁的方式具体为:若第一状态信息包括的权重之和大于第二状态信息包括的权重之和,则将第一dc后续的业务提供能力裁决为能够提供业务;若第一状态信息包括的权重之和小于第二状态信息包括的权重之和,则将第一dc后续的业务提供能力裁决为不能提供业务。

可选的,第一状态信息和第二状态信息包括无故障的业务模块的数量,仲裁模块1204根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁的方式具体为:若第一状态信息包括的无故障的业务模块的数量大于第二状态信息包括的无故障的业务模块的数量,则将第一dc后续的业务提供能力裁决为能够提供业务;若第一状态信息包括的无故障的业务模块的数量小于第二状态信息包括的无故障的业务模块的数量,则将第一dc后续的业务提供能力裁决为不能提供业务。

可选的,第一状态信息和第二状态信息包括主用业务模块的数量,仲裁模块1204根据第一状态信息和第二状态信息对第一dc后续的业务提供能力进行仲裁的方式具体为:若第一状态信息包括的主用业务模块的数量大于第二状态信息包括的主用业务模块的数量,则将第一dc后续的业务提供能力裁决为能够提供业务;若第一状态信息包括的主用业务模块的数量小于第二状态信息包括的主用业务模块的数量,则将第一dc后续的业务提供能力裁决为不能提供业务。

可选的,abs装置还包括:调整模块,用于在第一预设时间段内确定探测装置队列的次数达到第二预设次数,并且在第二预设时间段内业务模块发生第三预设次数的主备切换时,增长业务模块的心跳超时时长。

可选的,调整模块具体用于:若在第一预设时间段内确定探测装置队列的次数达到第二预设次数,则获取网络qos参数;若网络qos参数大于预设阈值,并且在第二预设时间段内业务模块发生第三预设次数的主备切换,则增长业务模块的心跳超时时长。

请参见图13,图13是本申请实施例公开的一种abs装置的结构示意图。如图13所示,该abs装置1300包括处理器1301、存储器1302和通信接口1303。其中,处理器1301、存储器1302和通信接口1303相连。

其中,处理器1301可以是中央处理器(centralprocessingunit,cpu),通用处理器,协处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。该处理器1301也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。

其中,通信接口1303用于实现与abs装置之间的通信。

其中,处理器1301调用存储器1302中存储的程序代码,可执行上述方法实施例中第一abs装置所执行的步骤。

基于同一发明构思,本申请实施例中提供的各装置解决问题的原理与本申请方法实施例相似,因此各装置的实施可以参见方法的实施,为简洁描述,在这里不再赘述。

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

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1