CN107769943B - 一种主备集群切换的方法和设备 - Google Patents

一种主备集群切换的方法和设备 Download PDF

Info

Publication number
CN107769943B
CN107769943B CN201610681860.5A CN201610681860A CN107769943B CN 107769943 B CN107769943 B CN 107769943B CN 201610681860 A CN201610681860 A CN 201610681860A CN 107769943 B CN107769943 B CN 107769943B
Authority
CN
China
Prior art keywords
cluster
state
request
total number
abnormal
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
Application number
CN201610681860.5A
Other languages
English (en)
Other versions
CN107769943A (zh
Inventor
韩坤鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610681860.5A priority Critical patent/CN107769943B/zh
Publication of CN107769943A publication Critical patent/CN107769943A/zh
Application granted granted Critical
Publication of CN107769943B publication Critical patent/CN107769943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Abstract

本申请的目的是提供了一种主备集群切换的方法和设备,通过周期性地基于数据请求响应状态,判断所述主集群的状态;并同时周期性地基于数据复制请求响应状态,判断所述备集群的状态;当所述主集群处于不可用状态,且所述备集群处于可用状态时,则进行主备集群的切换,将备集群替换为主集群,以达到快速精确地进行主备集群切换的目的,从而有效地提高系统的可用性。

Description

一种主备集群切换的方法和设备
技术领域
本申请涉及计算机领域,尤其涉及一种主备集群切换的技术。
背景技术
现有技术中,基于超文本传输协议(HyperText Transfer Protocol,HTTP)架构的系统,通常采用两层架构:前端网络服务(Web服务)接收和分发数据读写请求,后端存储引擎处理请求和读写数据。在系类系统中,常用主备集群来保证网络服务的可用性和数据安全性,故快速准确地检测集群的状态成为业界主要研究课题。
例如,该系统下的表格存储服务是一种非关系型数据库(NoSQL)分布式数据存储服务,提供在线多租户的云服务。服务端采用两层架构:前端网络服务器(Web服务器)负责接收和处理数据读写请求,由于各网络服务器之间的数据读写请求之间无依赖关系,故所有网络服务器都是无状态的;后端是存储引擎,采用典型的主节点/工作节点(Master/Worker)结构,主节点(Master)用于存储元数据,工作节点(Worker)执行数据读写和业务逻辑,如图1所示。
为了提供更高的服务可用性和数据安全性,表格存储服务提供了主备集群热备功能。即在两个机房部署两个集群,分别称为主集群和备集群,主集群处理用户设备发送的数据写入请求并存储数据,后台通过异步复制的方式传输写入的数据到备集群。当主集群发送故障时,需要进行切换至备集群,以待备集群进行数据的写入和存储,但由于在主备集群切换的过程中,现有技术没有考虑到主集群中部分服务器不可用的情况及主集群的用户请求的响应信息导致误切集群,同时没有考虑到备集群的状态是否可用及相关应用程序的运行状态,导致误切至备集群,进而导致大量数据的丢失,因此快速精确地检测集群的状态以达到精确主备集群切换成为业界主要研究课题。
发明内容
本申请的目的是提供一种主备集群切换的方法和设备,以解决现有技术中无法快速精确切换主备集群的问题。
根据本申请的一个方面,提供了一种主备集群切换的方法,包括:
基于数据请求响应状态,判断所述主集群的状态;
基于数据复制请求响应状态,判断所述备集群的状态;
当所述主集群处于不可用状态,且所述备集群处于可用状态时,将备集群替换为主集群。
进一步地,所述基于数据请求响应状态,判断所述主集群的状态,包括:
根据所述数据请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据请求总数和错误请求总数;
基于所述数据请求总数和所述错误请求总数,确定异常请求比例信息;
基于所述数据请求总数和所述异常请求比例信息,判断所述主集群的状态。
进一步地,所述基于所述数据请求总数和所述异常请求比例信息,判断所述主集群的状态,包括:
若所述数据请求总数大于等于预置的最小有效请求数,且所述异常请求比例信息大于等于预置的异常请求比例阈值,则所述主集群处于不可用状态。
进一步地,所述基于数据请求响应状态,判断所述主集群的状态包括:
基于数据请求响应状态和主集群节点状态,判断所述主集群的状态。
进一步地,所述基于主集群节点状态,判断所述主集群的状态,包括:
根据所述主集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定主集群工作节点总数和主集群异常工作节点总数;
基于所述主集群工作节点总数和所述主集群异常工作节点总数,确定主集群异常工作节点比例信息;
基于所述主集群异常工作节点比例信息,判断所述主集群的状态。
进一步地,所述基于所述主集群异常工作节点比例信息,判断所述主集群的状态,包括:
若所述主集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述主集群处于不可用状态。
进一步地,所述基于数据复制请求响应状态,判断所述备集群的状态,包括:
根据数据复制请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据复制请求总数和异常复制请求总数;
基于所述数据复制请求总数和所述异常复制请求总数,确定异常复制请求比例信息;
基于所述数据复制请求总数和所述异常复制请求比例信息,判断所述备集群的状态。
进一步地,所述基于所述数据复制请求总数和所述异常复制请求比例信息,判断所述备集群的状态,包括:
若所述数据复制请求总数大于等于预置的最小有效请求数,且所述异常复制请求比例信息大于等于预置的异常请求比例阈值,则所述备集群处于不可用状态。
进一步地,所述基于数据复制请求响应状态,判断所述备集群的状态,包括:
基于数据复制请求响应状态和备集群节点状态,判断所述备集群的状态。
进一步地,所述基于备集群节点状态,判断所述备集群的状态,包括:
根据备集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定备集群工作节点总数和备集群异常工作节点总数;
基于所述备集群工作节点总数和所述备集群异常工作节点总数,确定备集群异常工作节点比例信息;
基于备集群异常工作节点比例信息,判断所述备集群的状态。
进一步地,所述基于备集群异常工作节点比例信息,判断所述备集群的状态,包括:
若所述备集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述备集群处于不可用状态。
根据本申请的另一方面,还提供了一种用于主备集群切换的设备,包括:
判断装置,用于基于数据请求响应状态,判断所述主集群的状态,基于数据复制请求响应状态,判断所述备集群的状态;
切换装置,用于当所述主集群处于不可用状态,且所述备集群处于可用状态时,将备集群替换为主集群。
进一步地,所述判断装置,用于:根据所述数据请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据请求总数和错误请求总数;基于所述数据请求总数和所述错误请求总数,确定异常请求比例信息;及基于所述数据请求总数和所述异常请求比例信息,判断所述主集群的状态。
进一步地,所述判断装置,用于:
若所述数据请求总数大于等于预置的最小有效请求数,且所述异常请求比例信息大于等于预置的异常请求比例阈值,则所述主集群处于不可用状态。
进一步地,所述判断装置,用于:
基于数据请求响应状态和主集群节点状态,判断所述主集群的状态。
进一步地,所述判断装置,用于:根据所述主集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定主集群工作节点总数和主集群异常工作节点总数;基于所述主集群工作节点总数和所述主集群异常工作节点总数,确定主集群异常工作节点比例信息;及基于所述主集群异常工作节点比例信息,判断所述主集群的状态。
进一步地,所述判断装置,用于:
若所述主集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述主集群处于不可用状态。
进一步地,所述判断装置用于:根据数据复制请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据复制请求总数和异常复制请求总数;基于所述数据复制请求总数和所述异常复制请求总数,确定异常复制请求比例信息;及基于所述数据复制请求总数和所述异常复制请求比例信息,判断所述备集群的状态。
进一步地,所述判断装置,用于:
若所述数据复制请求总数大于等于预置的最小有效请求数,且所述异常复制请求比例信息大于等于预置的异常请求比例阈值,则所述备集群处于不可用状态。
进一步地,所述判断装置,用于:
基于数据复制请求响应状态和备集群节点状态,判断所述备集群的状态。
进一步地,所述判断装置,用于:根据备集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定备集群工作节点总数和备集群异常工作节点总数;基于所述备集群工作节点总数和所述备集群异常工作节点总数,确定备集群异常工作节点比例信息;及基于备集群异常工作节点比例信息,判断所述备集群的状态。
进一步地,所述判断装置,用于:
若所述备集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述备集群处于不可用状态。
根据本申请的另一个方面,还提供了一种包括一个或多个计算机可读存储介质的计算机程序产品,所述计算机可读存储介质上具有计算机可执行指令,所述计算机可执行指令构造成在被中间计算系统的一个或多个处理器执行时,使所述中间计算系统执行一种主备集群切换方法,所述方法包括:
基于数据请求响应状态,判断所述主集群的状态;
基于数据复制请求响应状态,判断所述备集群的状态;
当所述主集群处于不可用状态,且所述备集群处于可用状态时,将备集群替换为主集群。
与现有技术相比,本申请提供了一种主备集群切换的方法和设备,通过周期性地基于数据请求响应状态,判断所述主集群的状态;并同时周期性地基于数据复制请求响应状态,判断所述备集群的状态;当所述主集群处于不可用状态,且所述备集群处于可用状态时,则进行主备集群的切换,将备集群替换为主集群,以达到快速精确地进行主备集群切换的目的,从而提高系统的可用性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出现有技术中的表格存储系统中的表格存储服务的架构示意图;
图2示出根据本申请一个方面的一个优选实施例中的一种主备集群切换的架构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
根据本申请一个方面的一种主备集群切换的方法,该方法实现于系统控制设备,具体包括步骤S11和步骤S12,其中,所述步骤S11,基于数据请求响应状态,判断所述主集群的状态;基于数据复制请求响应状态,判断所述备集群的状态;所述步骤S12,当所述主集群处于不可用状态,且所述备集群处于可用状态时,将备集群替换为主集群。
在本申请的下述实施例中,以表格存储服务中的主备集群架构为例,如图2所示,通过系统控制设备对主集群与备集群进行状态的判断,以达到快速精确地进行主备集群的切换的目的,从而提高系统的可用性。
在图2的主备集群架构中,其中主备集群公用前端网络服务器(Web服务器),后端主备集群的存储引擎分别部署在两个机房,其中,所述前端网络服务器用于接收和处理用户设备发送的相应的数据请求,所述主备集群的存储引擎主要用于基于前端网络服务器转发过来的数据请求在相应的工作节点(Worker)执行数据读写和业务逻辑,所述备集群中部署接收复制数据的备份服务器(Replication Server)。例如,前端Web服务器接收用户设备发送的数据写入请求,从系统控制设备中获取处于可用状态中的主集群的存储引擎所在机房,然后将数据写入请求转发至所述主集群的存储引擎上的主节点(Master)中,并从所述主节点(Master)的节点列表中获取基于所述数据写入请求确定的相应的工作节点(worker),然后基于数据写入请求将待写入的数据写入主集群的存储引擎中相应的工作节点(worker)中,待数据写入完成后,将将立即返回所述数据写入请求响应信息;优选地,若在所述步骤S11中分别判断主集群和备集群的状态,若判断得到所述主集群处于可用状态且所述备集群亦处于可用状态,同时所述主集群后台将基于数据写入请求而写入的数据发送至所述备集群的Replication Server,然后将发送过来的所述写入的数据写入所述备集群存储引擎中相应的工作节点中,以实现对待写入的数据的备份。
需要说明的是,所述步骤S11中的所述数据请求响应状态可以是包括但不限于是数据读取请求的响应状态,亦可以是数据写入请求的响应状态。当然,其他现有的或今后可能出现的所述数据请求响应状态如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
进一步地,所述步骤S11中的基于数据请求响应状态,判断所述主集群的状态,包括:
根据所述数据请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据请求总数和错误请求总数;
基于所述数据请求总数和所述错误请求总数,确定异常请求比例信息;
基于所述数据请求总数和所述异常请求比例信息,判断所述主集群的状态。
在本申请的实施例中,所述步骤S11中基于数据请求响应状态并基于预置的统计时间范围Trange内的汇报时间间隔Tinterval确定的数据请求总数和错误请求总数,其中,所述数据请求总数和错误请求总数是由图2中的前端的每台Web服务器在预置的统计时间范围Trange内统计的,并以汇报时间间隔Tinterval周期性地将数据请求数和错误请求数发送给所述系统控制设备,以得到每台Web服务器在所述统计时间范围内发送过来的数据请求总数Nuser_request_total和错误请求总数Nuser_request_error,其中所述错误请求总数是基于所述数据请求响应状态中的结果状态码大于500而确定的。其中,所述结果状态码是超文本传输协议状态码,当该结果状态码大于500时则表示Web服务器在处理数据请求的过程中有错误或者异常状态发生,或者表示有可能是Web服务器以当前的软硬件资源无法完成对所述数据请求的相应处理。接着所述步骤S11在所述统计时间范围Trange内基于所有的所述Web服务器以所述汇报时间间隔Tinterval汇报过来的数据请求总数和错误请求总数累加求和,以确定异常请求比例信息Ruser_request,其中,所述异常请求比例信息Ruser_request的计算方式如下:
Ruser_request=Sum(Nuser_request_error)/Sum(Nuser_request_total),
最后,基于所有的所述Web服务器的所述数据请求总数累加之和Sum(Nuser_request_error)和所述异常请求比例信息Ruser_request来判断所述主集群的状态。
需要说明的是,将所述统计时间范围Trange优选为60s,将汇报时间间隔Tinterval优选为15s,本领域的技术人员应能理解,60s仅为所述统计时间范围Trange的一个优选的典型实施例,15s仅为所述汇报时间间隔Tinterval的一个优选的典型实施例,当然,其他现有的或今后可能出现的所述统计时间范围Trange和所述汇报时间间隔Tinterval的取值如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
例如,取典型的统计时间范围Trange=60s,汇报时间间隔Tinterval=15s,前端网络服务器(Web服务器)A在第一个15秒内处理的数据请求数为60个和错误请求数为40个,第二个15秒内处理的数据请求数为80个和错误请求数为60个,第三个15秒内处理的数据请求数为100个和错误请求数为70个,第四个15秒内处理的数据请求数为60个和错误请求数为50个,则所述Web服务器A在所述统计时间范围Trange为60s内处理的数据请求总数Nuser_request_total为(60+80+100+60)=300个和错误请求总数为Nuser_request_error为(40+60+70+50)=220个;在所述所述统计时间范围Trange为60s内,所述Web服务器B统计处理的数据请求总数Nuser_request_total为400个和错误请求总数为Nuser_request_error为380个;所述Web服务器C统计处理的数据请求总数Nuser_request_total为320个和错误请求总数为Nuser_request_error为280个;所述Web服务器D统计处理的数据请求总数Nuser_request_total为420个和错误请求总数为Nuser_request_error为400个,则在所述统计时间范围Trange内,所有的所述Web服务器的所述数据请求总数累加之和Sum(Nuser_request_error)=1440个,所述异常请求比例信息Ruser_request的计算方式如下:
Ruser_request=Sum(Nuser_request_error)/Sum(Nuser_request_total)
=(220+380+320+420)/(300+400+320+420)=88.89%。
进一步地,所述步骤S11中的基于所述数据请求总数和所述异常请求比例信息,判断所述主集群的状态,包括:
若所述数据请求总数大于等于预置的最小有效请求数,且所述异常请求比例信息大于等于预置的异常请求比例阈值,则所述主集群处于不可用状态。
接着本申请的上述实施例,所述步骤S11在判断所述主集群的状态之前要设定最小有效请求数Nrequest_min和异常请求比例阈值Rrequest_error,接着所述步骤S11判断得出:若所述数据请求总数大于等于预置的最小有效请求数,且所述异常请求比例信息大于等于预置的异常请求比例阈值,即Sum(Nuser_request_total)>=Nrequest_min且Ruser_request>=Rrequest_error,则所述主集群处于不可用状态,否则所述主集群处于可用状态,通过所述步骤S11中的数据请求响应状态来判断所述主集群的状态,能够检测出即使主集群服务正常但由于应用程序中的代码出错及服务内部异常等导致的用户设备发送的数据请求出错的情况,进而能够精确地确定所述主集群处于不可用状态,则执行主备集群切换操作,以提高系统服务的可用性。
例如,所述步骤S11在判断所述主集群的状态之前要设定最小有效请求数Nrequest_min为1000,预置此处预置Rrequest_error为0.8,其中,预置的所述最小有效请求数Nrequest_min为所有所述Web服务器的所述数据请求总数累加之后的最小有效请求数,此处将主集群的数据请求总数列入对主集群的可用性判断中,主要为了防止数据请求总数的抖动及在一定时间段内请求少导致的误判;由于Sum(Nuser_request_total)=1440大于Nrequest_min=1000且Ruser_request=88.89%大于Rrequest_error=0.8,则所述主集群处于不可用状态。进一步地,所述步骤S11中的基于数据请求响应状态,判断所述主集群的状态包括:
基于数据请求响应状态和主集群节点状态,判断所述主集群的状态。
在此,所述主集群节点状态为主集群中的所有工作节点(Worker)的节点状态。
进一步地,所述步骤S11中的基于主集群节点状态,判断所述主集群的状态,包括:
根据所述主集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定主集群工作节点总数和主集群异常工作节点总数;
基于所述主集群工作节点总数和所述主集群异常工作节点总数,确定主集群异常工作节点比例信息;
基于所述主集群异常工作节点比例信息,判断所述主集群的状态。
在本申请的实施例中,所述步骤S11周期性地以汇报时间间隔Tinterval采集主集群存储引擎中的所有工作节点(Worker)的状态,并基于预置的统计时间范围Trange内的汇报时间间隔Tinterval以确定主集群工作节点总数和主集群异常工作节点总数。具体地,步骤S11从所述主集群的主节点(Master)中获取所有工作节点(Worker)的列表信息来确定所述主集群工作节点总数为Nprimary_worker_total;接着对所有工作节点(Worker)调用状态检查接口以确定异常状态下的所述主集群异常工作节点总数为Nprimary_worker_error,接着所述步骤S11在所述统计时间范围Trange内对所有采集的所述主集群工作节点总数和所述主集群异常工作节点总数累加求和,以确定主集群异常工作节点比例信息Rprimary_worker,其中,所述主集群异常工作节点比例信息Rprimary_worker的计算方式如下:
Rprimary_worker=Sum(Nprimary_worker_error)/Sum(Nprimary_worker_total),
最后,基于基于所述主集群异常工作节点比例信息Rprimary_worker来判断所述主集群的状态。
进一步地,所述步骤S11中的基于所述主集群异常工作节点比例信息,判断所述主集群的状态,包括:
若所述主集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述主集群处于不可用状态。
接着本申请的上述实施例,所述步骤S11在判断所述主集群的状态之前要设定所述主集群的工作节点中的异常工作节点比例阈值Rworker_error,接着所述步骤S11判断得出:若所述主集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,即Rprimary_worker>=Rworker_error,则所述主集群处于不可用状态,否则所述主集群处于可用状态,通过所述步骤S11中的所述主集群节点状态来判断所述主集群的状态,能够快速检测出所述主集群中的部分服务不可用情况,进而能够精确地确定所述主集群处于不可用的状态,则执行主备集群切换操作,以提高系统服务的可用性。
在所述步骤S11中,所述数据复制请求响应状态可以是包括但不限于是主集群处于可用状态且备集群处于可用状态时,所述备集群中的备份服务器(Replication Server)基于主集群发送的数据复制请求之后,进行数据写入后而作出的相应的数据复制请求响应状态。当然,其他现有的或今后可能出现的所述数据复制请求响应状态如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
进一步地,所述步骤S11中的基于数据复制请求响应状态,判断所述备集群的状态,包括:
根据数据复制请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据复制请求总数和异常复制请求总数;
基于所述数据复制请求总数和所述异常复制请求总数,确定异常复制请求比例信息;
基于所述数据复制请求总数和所述异常复制请求比例信息,判断所述备集群的状态。
在本申请的实施例中,所述步骤S11中根据数据复制请求响应状态并基于预置的统计时间范围Trange内的汇报时间间隔Tinterval确定的数据复制请求总数和异常复制请求总数,其中,所述数据复制请求总数和异常复制请求总数是有图2中的备集群存储引擎中的每台备份服务器(Replication Server)在预置的统计时间范围Trange内自行统计的,并以汇报时间间隔Tinterval周期性地将所述数据复制请求数和异常复制请求数发送给所述系统控制设备,以得到每台备份服务器(Replication Server)在所述统计时间范围内发送过来的数据复制请求总数Nreplication_request_total和异常复制请求总数Nreplication_request_error,其中所述异常复制请求总数是基于所述数据复制请求响应状态中的结果状态码大于500而确定的。其中,所述结果状态码是超文本传输协议状态码,当该结果状态码大于500时则表示备份服务器在处理数据复制请求的过程中有错误或者异常状态发生,或者表示有可能是备份服务器(Replication Server)以当前的软硬件资源无法完成对所述数据请求的相应处理。接着所述步骤S11在所述统计时间范围Trange内基于所有的所述备份服务器(ReplicationServer)以所述汇报时间间隔Tinterval汇报过来的数据复制请求总数和异常复制请求总数累加求和,以确定异常复制请求比例信息Rreplication_request,其中,所述异常复制请求比例信息Rreplication_request的计算方式如下:
Rreplication_request=Sum(Nreplication_request_error)/Sum(Nreplication_request_total),
最后,基于所有的所述备份服务器(Replication Server)的所述数据复制请求总数累加之和Sum(Nreplication_request_error)和所述异常复制请求比例信息Rreplication_request来判断所述备集群的状态。
进一步地,所述步骤S11中的基于所述数据复制请求总数和所述异常复制请求比例信息,判断所述备集群的状态,包括:
若所述数据复制请求总数大于等于预置的最小有效请求数,且所述异常复制请求比例信息大于等于预置的异常请求比例阈值,则所述备集群处于不可用状态。
接着本申请的上述实施例,所述步骤S11在判断所述备集群的状态之前要设定最小有效请求数Nrequest_min和异常请求比例阈值Rrequest_error,其中,预置的所述最小有效请求数Nrequest_min为所有所述备份服务器(Replication Server)的所述数据复制请求总数累加之后的最小有效请求数,此处将备集群的备份服务器(Replication Server)中的数据复制请求总数列入对备集群的可用性判断中,主要为了防止数据复制请求总数的抖动及在一定时间段内请求少导致的误判;接着所述步骤S11判断得出:若所述数据复制请求总数大于等于预置的最小有效请求数,且所述异常复制请求比例信息大于等于预置的异常请求比例阈值,即Sum(Nreplication_request_total)>=Nrequest_min且Rreplication_request>=Rrequest_error,则所述备集群处于不可用状态,否则所述备集群处于可用状态,通过所述步骤S11中的数据复制请求响应状态来判断所述备集群的状态,能够检测出备集群无法处理数据复制请求时对应的数据复制异常情况,进而能够精确地确定所述备集群处于不可用状态,则不执行主备集群切换操作,以避免故障范围在处于不可用状态下的备集群中扩散。
进一步地,所述步骤S11中的基于数据复制请求响应状态,判断所述备集群的状态包括:
基于数据复制请求响应状态和备集群节点状态,判断所述备集群的状态。
在此,所述备集群节点状态为备集群中的所有工作节点(Worker)的节点状态。
进一步地,所述步骤S11中的基于备集群节点状态,判断所述备集群的状态,包括:
根据备集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定备集群工作节点总数和备集群异常工作节点总数;
基于所述备集群工作节点总数和所述备集群异常工作节点总数,确定备集群异常工作节点比例信息;
基于备集群异常工作节点比例信息,判断所述备集群的状态。
在本申请的实施例中,所述步骤S11周期性地以汇报时间间隔Tinterval采集备集群存储引擎中的所有工作节点(Worker)的状态,并基于预置的统计时间范围Trange内的汇报时间间隔Tinterval以确定备集群工作节点总数和备集群异常工作节点总数。具体地,所述步骤S11从所述备集群的主节点(Master)中获取所有工作节点(Worker)的列表信息来确定所述备集群工作节点总数为Nsecondary_worker_total;接着对所有工作节点(Worker)调用状态检查接口以确定异常状态下的所述备集群异常工作节点总数为Nsecondary_worker_error,接着所述步骤S11在所述统计时间范围Trange内对所有采集的所述备集群工作节点总数和所述备集群异常工作节点总数累加求和,以确定备集群异常工作节点比例信息Rsecondary_worker,其中,所述备集群异常工作节点比例信息Rsecondary_worker的计算方式如下:
Rsecondary_worker=Sum(Nsecondary_worker_error)/Sum(Nsecondary_worker_total),
最后,基于所述备集群异常工作节点比例信息Rsecondary_worker来判断所述备集群的状态。
进一步地,所述步骤S11中的基于备集群异常工作节点比例信息,判断所述备集群的状态,包括:
若所述备集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述备集群处于不可用状态。
接着本申请的上述实施例,所述步骤S11在判断所述备集群的状态之前要设定所述主集群的工作节点中的异常工作节点比例阈值Rworker_error,接着所述步骤S11判断得出:若所述备集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,即Rsecondary_worker>=Rworker_error,则所述备集群处于不可用状态,否则所述备集群处于可用状态,通过所述步骤S11中的所述备集群节点状态来判断所述备集群的状态,能够快速检测出所述备集群中的部分服务不可用情况,进而能够精确地确定所述备集群处于不可用的状态,则不执行主备集群切换操作,以避免更多待复制的数据在处于不可用状态下的备集群中丢失。
根据本申请一个方面的一种主备集群切换的设备,该设备包括判断装置11和切换装置12,其中,所述判断装置11用于:基于数据请求响应状态,判断所述主集群的状态;基于数据复制请求响应状态,判断所述备集群的状态;所述切换装置12用于:当所述主集群处于不可用状态,且所述备集群处于可用状态时,将备集群替换为主集群。
在此,所述设备包括但不限于客户设备、网络设备以及客户设备与网络设备通过网络相集成所构成的设备。所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,所述设备还可以是运行于所述用户设备与网络设备通过网络相集成所构成的设备上的脚本程序。在本申请的一个优选实施例中,将所述设备优选为系统控制设备,当然,本领域技术人员应能理解上述系统控制设备仅为本申请所述设备的一个优选实施例,其他现有的或今后可能出现的所述设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地或者按照设定的或实时调整的工作模式要求。
在本申请的下述实施例中,以表格存储服务中的主备集群架构为例,如图2所示,通过系统控制设备对主集群与备集群进行状态的判断,以达到快速精确地进行主备集群的切换的目的,从而提高系统的可用性。
在图2的主备集群架构中,其中主备集群公用前端网络服务器(Web服务器),后端主备集群的存储引擎分别部署在两个机房,其中,所述前端网络服务器用于接收和处理用户设备发送的相应的数据请求,所述主备集群的存储引擎主要用于基于前端网络服务器转发过来的数据请求在相应的工作节点(Worker)执行数据读写和业务逻辑,所述备集群中部署接收复制数据的备份服务器(Replication Server)。例如,前端Web服务器接收用户设备发送的数据写入请求,从系统控制设备中获取处于可用状态中的主集群的存储引擎所在机房,然后将数据写入请求转发至所述主集群的存储引擎上主节点(Master)中,并从所述主节点(Master)的节点列表中获取基于所述数据写入请求确定的相应的工作节点(worker),然后基于数据写入请求将待写入的数据写入主集群的存储引擎中相应的工作节点(worker)中,待数据写入完成后,将将立即返回所述数据写入请求响应信息;优选地,若在所述步骤S11中分别判断主集群和备集群的状态,若判断得到所述主集群处于可用状态且所述备集群亦处于可用状态,同时所述主集群后台将基于数据写入请求而写入的数据发送至所述备集群的Replication Server,然后将发送过来的所述写入的数据写入所述备集群存储引擎中相应的工作节点中,以实现对待写入的数据的备份。
需要说明的是,所述判断装置11中的所述数据请求响应状态可以是包括但不限于是数据读取请求的响应状态,亦可以是数据写入请求的响应状态。当然,其他现有的或今后可能出现的所述数据请求响应状态如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
进一步地,所述判断装置11,用于:
根据所述数据请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据请求总数和错误请求总数;
基于所述数据请求总数和所述错误请求总数,确定异常请求比例信息;
基于所述数据请求总数和所述异常请求比例信息,判断所述主集群的状态。
在本申请的实施例中,所述判断装置11基于数据请求响应状态并基于预置的统计时间范围Trange内的汇报时间间隔Tinterval确定的数据请求总数和错误请求总数,其中,所述数据请求总数和错误请求总数是由图2中的前端的每台Web服务器在预置的统计时间范围Trange内统计的,并以汇报时间间隔Tinterval周期性地将数据请求数和错误请求数发送给所述系统控制设备,以得到每台Web服务器在所述统计时间范围内发送过来的数据请求总数Nuser_request_total和错误请求总数Nuser_request_error,其中所述错误请求总数是基于所述数据请求响应状态中的结果状态码大于500而确定的。其中,所述结果状态码是超文本传输协议状态码,当该结果状态码大于500时则表示Web服务器在处理数据请求的过程中有错误或者异常状态发生,或者表示有可能是Web服务器以当前的软硬件资源无法完成对所述数据请求的相应处理。接着所述判断装置11在所述统计时间范围Trange内基于所有的所述Web服务器以所述汇报时间间隔Tinterval汇报过来的数据请求总数和错误请求总数累加求和,以确定异常请求比例信息Ruser_request,其中,所述异常请求比例信息Ruser_request的计算方式如下:
Ruser_request=Sum(Nuser_request_error)/Sum(Nuser_request_total),
最后,所述判断装置11基于所有的所述Web服务器的所述数据请求总数累加之和Sum(Nuser_request_error)和所述异常请求比例信息Ruser_request来判断所述主集群的状态。
需要说明的是,将所述统计时间范围Trange优选为60s,将汇报时间间隔Tinterval优选为15s,本领域的技术人员应能理解,60s仅为所述统计时间范围Trange的一个优选的典型实施例,15s仅为所述汇报时间间隔Tinterval的一个优选的典型实施例,当然,其他现有的或今后可能出现的所述统计时间范围Trange和所述汇报时间间隔Tinterval的取值如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
例如,取典型的统计时间范围Trange=60s,汇报时间间隔Tinterval=15s,前端网络服务器(Web服务器)A在第一个15秒内处理的数据请求数为60个和错误请求数为40个,第二个15秒内处理的数据请求数为80个和错误请求数为60个,第三个15秒内处理的数据请求数为100个和错误请求数为70个,第四个15秒内处理的数据请求数为60个和错误请求数为50个,则所述Web服务器A在所述统计时间范围Trange为60s内处理的数据请求总数Nuser_request_total为(60+80+100+60)=300个和错误请求总数为Nuser_request_error为(40+60+70+50)=220个;在所述所述统计时间范围Trange为60s内,所述Web服务器B统计处理的数据请求总数Nuser_request_total为400个和错误请求总数为Nuser_request_error为380个;所述Web服务器C统计处理的数据请求总数Nuser_request_total为320个和错误请求总数为Nuser_request_error为280个;所述Web服务器D统计处理的数据请求总数Nuser_request_total为420个和错误请求总数为Nuser_request_error为400个,则在所述统计时间范围Trange内,所有的所述Web服务器的所述数据请求总数累加之和Sum(Nuser_request_error)=1440个,所述异常请求比例信息Ruser_request的计算方式如下:
Ruser_request=Sum(Nuser_request_error)/Sum(Nuser_request_total)
=(220+380+320+420)/(300+400+320+420)=88.89%。
进一步地,所述判断装置11,用于:
若所述数据请求总数大于等于预置的最小有效请求数,且所述异常请求比例信息大于等于预置的异常请求比例阈值,则所述主集群处于不可用状态。
接着本申请的上述实施例,所述判断装置11在判断所述主集群的状态之前要设定最小有效请求数Nrequest_min和异常请求比例阈值Rrequest_error,接着所述判断装置11判断得出:若所述数据请求总数大于等于预置的最小有效请求数,且所述异常请求比例信息大于等于预置的异常请求比例阈值,即Sum(Nuser_request_total)>=Nrequest_min且Ruser_request>=Rrequest_error,则所述主集群处于不可用状态,否则所述主集群处于可用状态,通过所述判断装置11中的数据请求响应状态来判断所述主集群的状态,能够检测出即使主集群服务正常但由于应用程序中的代码出错及服务内部异常等导致的用户设备发送的数据请求出错的情况,进而能够精确地确定所述主集群处于不可用状态,则执行主备集群切换操作,以提高系统服务的可用性。
例如,所述判断装置11在判断所述主集群的状态之前要设定最小有效请求数Nrequest_min为1000,预置此处预置Rrequest_error为0.8,其中,预置的所述最小有效请求数Nrequest_min为所有所述Web服务器的所述数据请求总数累加之后的最小有效请求数,此处将主集群的数据请求总数列入对主集群的可用性判断中,主要为了防止数据请求总数的抖动及在一定时间段内请求少导致的误判;由于Sum(Nuser_request_total)=1440大于Nrequest_min=1000且Ruser_request=88.89%大于Rrequest_error=0.8,则所述主集群处于不可用状态。
进一步地,所述判断装置11,用于:
基于数据请求响应状态和集群节点状态,判断所述主集群的状态。
在此,所述主集群节点状态为主集群中的所有工作节点(Worker)的节点状态。
进一步地,所述判断装置11,用于:
根据所述主集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定主集群工作节点总数和主集群异常工作节点总数;
基于所述主集群工作节点总数和所述主集群异常工作节点总数,确定主集群异常工作节点比例信息;
基于所述主集群异常工作节点比例信息,判断所述主集群的状态。
在本申请的实施例中,所述判断装置11周期性地以汇报时间间隔Tinterval采集主集群存储引擎中的所有工作节点(Worker)的状态,并基于预置的统计时间范围Trange内的汇报时间间隔Tinterval以确定主集群工作节点总数和主集群异常工作节点总数。具体地,所述判断装置11从所述主集群的主节点(Master)中获取所有工作节点(Worker)的列表信息来确定所述主集群工作节点总数为Nprimary_worker_total;接着对所有工作节点(Worker)调用状态检查接口以确定异常状态下的所述主集群异常工作节点总数为Nprimary_worker_error,接着所述判断装置11在所述统计时间范围Trange内对所有采集的所述主集群工作节点总数和所述主集群异常工作节点总数累加求和,以确定主集群异常工作节点比例信息Rprimary_worker,其中,所述主集群异常工作节点比例信息Rprimary_worker的计算方式如下:
Rprimary_worker=Sum(Nprimary_worker_error)/Sum(Nprimary_worker_total),
最后,所述判断装置11基于所述主集群异常工作节点比例信息Rprimary_worker来判断所述主集群的状态。
进一步地,所述判断装置11,用于:
若所述主集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述主集群处于不可用状态。
接着本申请的上述实施例,所述判断装置11在判断所述主集群的状态之前要设定所述主集群的工作节点中的异常工作节点比例阈值Rworker_error,接着所述判断装置11判断得出:若所述主集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,即Rprimary_worker>=Rworker_error,则所述主集群处于不可用状态,否则所述主集群处于可用状态,通过所述判断装置11中的所述主集群节点状态来判断所述主集群的状态,能够快速检测出所述主集群中的部分服务不可用情况,进而能够精确地确定所述主集群处于不可用的状态,则执行主备集群切换操作,以提高系统服务的可用性。
在所述判断装置11中,所述数据复制请求响应状态可以是包括但不限于是主集群处于可用状态且备集群处于可用状态时,所述备集群中的备份服务器(ReplicationServer)基于主集群发送的数据复制请求之后,进行数据写入后而作出的相应的数据复制请求响应状态。当然,其他现有的或今后可能出现的所述数据复制请求响应状态如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
进一步地,所述判断装置11,用于:
根据数据复制请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据复制请求总数和异常复制请求总数;
基于所述数据复制请求总数和所述异常复制请求总数,确定异常复制请求比例信息;
基于所述数据复制请求总数和所述异常复制请求比例信息,判断所述备集群的状态。
在本申请的实施例中,所述判断装置11中根据数据复制请求响应状态并基于预置的统计时间范围Trange内的汇报时间间隔Tinterval确定的数据复制请求总数和异常复制请求总数,其中,所述数据复制请求总数和异常复制请求总数是有图2中的备集群存储引擎中的每台备份服务器(Replication Server)在预置的统计时间范围Trange内自行统计的,并以汇报时间间隔Tinterval周期性地将所述数据复制请求数和异常复制请求数发送给所述系统控制设备,以得到每台备份服务器(Replication Server)在所述统计时间范围内发送过来的数据复制请求总数Nreplication_request_total和异常复制请求总数Nreplication_request_error,其中所述异常复制请求总数是基于所述数据复制请求响应状态中的结果状态码大于500而确定的。其中,所述结果状态码是超文本传输协议状态码,当该结果状态码大于500时则表示备份服务器在处理数据复制请求的过程中有错误或者异常状态发生,或者表示有可能是备份服务器(Replication Server)以当前的软硬件资源无法完成对所述数据请求的相应处理。接着所述判断装置11在所述统计时间范围Trange内基于所有的所述备份服务器(Replication Server)以所述汇报时间间隔Tinterval汇报过来的数据复制请求总数和异常复制请求总数累加求和,以确定异常复制请求比例信息Rreplication_request,其中,所述异常复制请求比例信息Rreplication_request的计算方式如下:
Rreplication_request=Sum(Nreplication_request_error)/Sum(Nreplication_request_total),
最后,所述判断装置11基于所有的所述备份服务器(Replication Server)的所述数据复制请求总数累加之和Sum(Nreplication_request_error)和所述异常复制请求比例信息Rreplication_request来判断所述备集群的状态。
进一步地,所述判断装置11,用于:
若所述数据复制请求总数大于等于预置的最小有效请求数,且所述异常复制请求比例信息大于等于预置的异常请求比例阈值,则所述备集群处于不可用状态。
接着本申请的上述实施例,所述判断装置11在判断所述备集群的状态之前要设定最小有效请求数Nrequest_min和异常请求比例阈值Rrequest_error,接着所述判断装置11判断得出:若所述数据复制请求总数大于等于预置的最小有效请求数,且所述异常复制请求比例信息大于等于预置的异常请求比例阈值,即Sum(Nreplication_request_total)>=Nrequest_min且Rreplication_request>=Rrequest_error,则所述备集群处于不可用状态,否则所述备集群处于可用状态,通过所述判断装置11中的数据复制请求响应状态来判断所述备集群的状态,能够检测出备集群无法处理数据复制请求时对应的数据复制异常情况,进而能够精确地确定所述备集群处于不可用状态,则不执行主备集群切换操作,以避免故障范围在处于不可用状态下的备集群中扩散。
进一步地,所述判断装置11,用于:
基于数据复制请求响应状态和备集群节点状态,判断所述备集群的状态。
在此,所述备集群节点状态为备集群中的所有工作节点(Worker)的节点状态。
进一步地,所述判断装置11,用于:
根据备集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定备集群工作节点总数和备集群异常工作节点总数;
基于所述备集群工作节点总数和所述备集群异常工作节点总数,确定备集群异常工作节点比例信息;
基于备集群异常工作节点比例信息,判断所述备集群的状态。
在本申请的实施例中,所述判断装置11周期性地以汇报时间间隔Tinterval采集备集群存储引擎中的所有工作节点(Worker)的状态,并基于预置的统计时间范围Trange内的汇报时间间隔Tinterval以确定备集群工作节点总数和备集群异常工作节点总数。具体地,步骤S11从所述备集群的主节点(Master)中获取所有工作节点(Worker)的列表信息来确定所述备集群工作节点总数为Nsecondary_worker_total;接着对所有工作节点(Worker)调用状态检查接口以确定异常状态下的所述备集群异常工作节点总数为Nsecondary_worker_error,接着所述判断装置11在所述统计时间范围Trange内对所有采集的所述备集群工作节点总数和所述备集群异常工作节点总数累加求和,以确定备集群异常工作节点比例信息Rsecondary_worker,其中,所述备集群异常工作节点比例信息Rsecondary_worker的计算方式如下:
Rsecondary_worker=Sum(Nsecondary_worker_error)/Sum(Nsecondary_worker_total),
最后,所述判断装置11基于所述备集群异常工作节点比例信息Rsecondary_worker来判断所述备集群的状态。
进一步地,所述判断装置11,用于:
若所述备集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述备集群处于不可用状态。
接着本申请的上述实施例,所述判断装置11在判断所述备集群的状态之前要设定所述主集群的工作节点中的异常工作节点比例阈值Rworker_error,接着所述判断装置11判断得出:若所述备集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,即Rsecondary_worker>=Rworker_error,则所述备集群处于不可用状态,否则所述备集群处于可用状态,通过所述判断装置11中的所述备集群节点状态来判断所述备集群的状态,能够快速检测出所述备集群中的部分服务不可用情况,进而能够精确地确定所述备集群处于不可用的状态,则不执行主备集群切换操作,以避免更多待复制的数据在处于不可用状态下的备集群中丢失。
根据本申请的另一个方面,还提供了一种包括一个或多个计算机可读存储介质的计算机程序产品,所述计算机可读存储介质上具有计算机可执行指令,所述计算机可执行指令构造成在被中间计算系统的一个或多个处理器执行时,使所述中间计算系统执行一种主备集群切换方法,所述方法包括:
基于数据请求响应状态,判断所述主集群的状态;
基于数据复制请求响应状态,判断所述备集群的状态;
当所述主集群处于不可用状态,且所述备集群处于可用状态时,将备集群替换为主集群。
需要说明的是,本申请主要适用于大型分布式系统中的主集群与备集群的容灾,例如,存储系统或NoSQL(非关系型数据库)系统等。在本申请的一个优选的实际应用场景中,以存储系统为例,对本申请进行进一步解释说明。其中,主备集群是公用前端网络服务器(Web服务器),后端主备集群的存储引擎分别部署在两个机房,其中,所述前端网络服务器用于接收和处理用户设备发送的相应的数据写入请求,所述主备集群的存储引擎主要用于基于前端网络服务器转发过来的数据写入请求在相应的工作节点(Worker)执行数据读写和业务逻辑,所述备集群中部署接收复制数据的备份服务器(Replication Server)。例如,前端Web服务器接收用户设备发送的数据写入请求,从系统控制设备中获取处于可用状态中的主集群的存储引擎所在机房,然后将数据写入请求转发至所述主集群的存储引擎上的主节点(Master)中,并从所述主节点(Master)的节点列表中获取基于所述数据写入请求确定的相应的工作节点(worker),然后基于数据写入请求将待写入的数据写入主集群的存储引擎中相应的工作节点(worker)中,待数据写入完成后,将立即返回所述数据写入请求响应信息;若基于数据复制请求响应状态和备集群节点状态判断得知备集群亦处于可用状态,则同时在所述主集群后台将基于数据写入请求而写入的数据发送至所述备集群的Replication Server(备份服务器),然后将发送过来的所述写入的数据写入所述备集群存储引擎中相应的工作节点中,以实现对待写入的数据的备份。
与现有技术相比,本申请提供了一种主备集群切换的方法和设备,通过周期性地基于数据请求响应状态,判断所述主集群的状态;并同时周期性地基于数据复制请求响应状态,判断所述备集群的状态;当所述主集群处于不可用状态,且所述备集群处于可用状态时,则进行主备集群的切换,将备集群替换为主集群,以达到快速精确地进行主备集群切换的目的,从而提高系统的可用性。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (21)

1.一种主备集群切换方法,其中,所述方法包括:
基于数据请求响应状态,判断主集群的状态,所述数据请求为用户设备发送的、用于在主集群的相应的工作节点执行数据读写和业务逻辑的请求,所述数据请求总数大于等于预置的最小有效请求数、且异常请求比例信息大于等于预置的异常请求比例阈值的主集群为处于不可用状态的主集群;
基于数据复制请求响应状态,判断所述备集群的状态;
当所述主集群处于不可用状态,且所述备集群处于可用状态时,将备集群替换为主集群。
2.根据权利要求1所述的方法,其中,所述基于数据请求响应状态,判断所述主集群的状态,包括:
根据所述数据请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据请求总数和错误请求总数;
基于所述数据请求总数和所述错误请求总数,确定异常请求比例信息;
基于所述数据请求总数和所述异常请求比例信息,判断所述主集群的状态。
3.根据权利要求1所述的方法,其中,基于数据请求响应状态,判断所述主集群的状态包括:
基于数据请求响应状态和主集群节点状态,判断所述主集群的状态。
4.根据权利要求3所述的方法,其中,所述基于主集群节点状态,判断所述主集群的状态,包括:
根据所述主集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定主集群工作节点总数和主集群异常工作节点总数;
基于所述主集群工作节点总数和所述主集群异常工作节点总数,确定主集群异常工作节点比例信息;
基于所述主集群异常工作节点比例信息,判断所述主集群的状态。
5.根据权利要求4所述的方法,其中,基于所述主集群异常工作节点比例信息,判断所述主集群的状态,包括:
若所述主集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述主集群处于不可用状态。
6.根据权利要求1所述的方法,其中,所述基于数据复制请求响应状态,判断所述备集群的状态,包括:
根据数据复制请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据复制请求总数和异常复制请求总数;
基于所述数据复制请求总数和所述异常复制请求总数,确定异常复制请求比例信息;
基于所述数据复制请求总数和所述异常复制请求比例信息,判断所述备集群的状态。
7.根据权利要求6所述的方法,其中,所述基于所述数据复制请求总数和所述异常复制请求比例信息,判断所述备集群的状态,包括:
若所述数据复制请求总数大于等于预置的最小有效请求数,且所述异常复制请求比例信息大于等于预置的异常请求比例阈值,则所述备集群处于不可用状态。
8.根据权利要求1所述的方法,其中,基于数据复制请求响应状态,判断所述备集群的状态,包括:
基于数据复制请求响应状态和备集群节点状态,判断所述备集群的状态。
9.根据权利要求8所述的方法,其中,所述基于备集群节点状态,判断所述备集群的状态,包括:
根据备集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定备集群工作节点总数和备集群异常工作节点总数;
基于所述备集群工作节点总数和所述备集群异常工作节点总数,确定备集群异常工作节点比例信息;
基于备集群异常工作节点比例信息,判断所述备集群的状态。
10.根据权利要求9所述的方法,其中,所述基于备集群异常工作节点比例信息,判断所述备集群的状态,包括:
若所述备集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述备集群处于不可用状态。
11.一种用于主备集群切换的设备,其中,所述设备包括:
判断装置,用于基于数据请求响应状态,判断主集群的状态,基于数据复制请求响应状态,判断所述备集群的状态,所述数据请求为用户设备发送的、用于在主集群的相应的工作节点执行数据读写和业务逻辑的请求,所述数据请求总数大于等于预置的最小有效请求数、且异常请求比例信息大于等于预置的异常请求比例阈值的主集群为处于不可用状态的主集群;
切换装置,用于当所述主集群处于不可用状态,且所述备集群处于可用状态时,将备集群替换为主集群。
12.根据权利要求11所述的设备,其中,所述判断装置,用于:
根据所述数据请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据请求总数和错误请求总数;基于所述数据请求总数和所述错误请求总数,确定异常请求比例信息;及基于所述数据请求总数和所述异常请求比例信息,判断所述主集群的状态。
13.根据权利要求11所述的设备,其中,所述判断装置,用于基于数据请求响应状态和主集群节点状态,判断所述主集群的状态。
14.根据权利要求13所述的设备,其中,所述判断装置用于:根据所述主集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定主集群工作节点总数和主集群异常工作节点总数;基于所述主集群工作节点总数和所述主集群异常工作节点总数,确定主集群异常工作节点比例信息;及基于所述主集群异常工作节点比例信息,判断所述主集群的状态。
15.根据权利要求14所述的设备,其中,所述判断装置,若所述主集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述主集群处于不可用状态。
16.根据权利要求11所述的设备,其中,所述判断装置,用于根据数据复制请求响应状态,并基于预置的统计时间范围内的汇报时间间隔,确定数据复制请求总数和异常复制请求总数;基于所述数据复制请求总数和所述异常复制请求总数,确定异常复制请求比例信息;及基于所述数据复制请求总数和所述异常复制请求比例信息,判断所述备集群的状态。
17.根据权利要求16所述的设备,其中,所述判断装置,用于若所述数据复制请求总数大于等于预置的最小有效请求数,且所述异常复制请求比例信息大于等于预置的异常请求比例阈值,则所述备集群处于不可用状态。
18.根据权利要求11所述的设备,其中,所述判断装置,用于基于数据复制请求响应状态和备集群节点状态,判断所述备集群的状态。
19.根据权利要求18所述的设备,其中,所述判断装置,用于根据备集群节点状态,并基于预置的统计时间范围内的汇报时间间隔,确定备集群工作节点总数和备集群异常工作节点总数;基于所述备集群工作节点总数和所述备集群异常工作节点总数,确定备集群异常工作节点比例信息;及基于备集群异常工作节点比例信息,判断所述备集群的状态。
20.根据权利要求19所述的设备,其中,所述判断装置,用于若所述备集群异常工作节点比例信息大于等于预置的异常工作节点比例阈值,则所述备集群处于不可用状态。
21.一种计算机可读存储介质,所述计算机可读存储介质上具有计算机可执行指令,所述计算机可执行指令可被处理器执行以实现一种主备集群切换方法,所述方法包括:
基于数据请求响应状态,判断主集群的状态,所述数据请求为用户设备发送的、用于在主集群的相应的工作节点执行数据读写和业务逻辑的请求,所述数据请求总数大于等于预置的最小有效请求数、且异常请求比例信息大于等于预置的异常请求比例阈值的主集群为处于不可用状态的主集群;
基于数据复制请求响应状态,判断所述备集群的状态;
当所述主集群处于不可用状态,且所述备集群处于可用状态时,将备集群替换为主集群。
CN201610681860.5A 2016-08-17 2016-08-17 一种主备集群切换的方法和设备 Active CN107769943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610681860.5A CN107769943B (zh) 2016-08-17 2016-08-17 一种主备集群切换的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610681860.5A CN107769943B (zh) 2016-08-17 2016-08-17 一种主备集群切换的方法和设备

Publications (2)

Publication Number Publication Date
CN107769943A CN107769943A (zh) 2018-03-06
CN107769943B true CN107769943B (zh) 2021-01-08

Family

ID=61261229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610681860.5A Active CN107769943B (zh) 2016-08-17 2016-08-17 一种主备集群切换的方法和设备

Country Status (1)

Country Link
CN (1) CN107769943B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109257229B (zh) * 2018-10-25 2021-08-06 网宿科技股份有限公司 一种主备切换方法及装置
CN109840166B (zh) * 2019-01-14 2021-03-30 京东数字科技控股有限公司 一种跨集群对象存储异步备份方法、装置和系统
CN110278133B (zh) * 2019-07-31 2021-08-13 中国工商银行股份有限公司 由服务器执行的检查方法、装置、计算设备以及介质
CN113051110A (zh) * 2019-12-27 2021-06-29 中国移动通信集团湖南有限公司 集群切换方法、装置及设备
CN112291326B (zh) * 2020-10-23 2023-04-18 深圳市欢太科技有限公司 负载均衡方法、负载均衡装置、存储介质与电子设备
CN113765690A (zh) * 2021-01-07 2021-12-07 北京沃东天骏信息技术有限公司 集群切换方法、系统、装置、终端、服务器及存储介质
CN113590040B (zh) * 2021-07-29 2024-03-19 郑州阿帕斯数云信息科技有限公司 数据处理方法、装置、设备和存储介质
CN114422567A (zh) * 2021-12-09 2022-04-29 阿里巴巴(中国)有限公司 数据请求的处理方法、装置、系统、计算机设备及介质
CN114338360A (zh) * 2022-01-14 2022-04-12 百果园技术(新加坡)有限公司 直播列表服务处理方法、系统、电子设备及存储介质
CN114640574B (zh) * 2022-02-28 2023-11-28 天翼安全科技有限公司 一种主备设备的切换方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408855A (zh) * 2008-11-07 2009-04-15 北京威视数据系统有限公司 连续数据保护系统在远程备份设备临时异常时的保护方法
CN101800675A (zh) * 2010-02-25 2010-08-11 华为技术有限公司 故障监控方法、监控设备及通信系统
CN102137133A (zh) * 2010-01-22 2011-07-27 华为技术有限公司 内容分发的方法、系统及调度服务器
CN103064860A (zh) * 2011-10-21 2013-04-24 阿里巴巴集团控股有限公司 数据库高可用实现方法及其装置
CN103312541A (zh) * 2013-05-28 2013-09-18 浪潮电子信息产业股份有限公司 一种高可用互备集群的管理方法
CN103458045A (zh) * 2013-09-13 2013-12-18 汉柏科技有限公司 分布式集群的动态部署方法和系统
CN104111937A (zh) * 2013-04-18 2014-10-22 中兴通讯股份有限公司 主、备数据库及其数据一致性检测、修复方法和装置
CN105357038A (zh) * 2015-10-26 2016-02-24 北京百度网讯科技有限公司 监控虚拟机集群的方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301436A (ja) * 2004-04-07 2005-10-27 Hitachi Ltd クラスタシステムおよびクラスタシステムにおける障害回復方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408855A (zh) * 2008-11-07 2009-04-15 北京威视数据系统有限公司 连续数据保护系统在远程备份设备临时异常时的保护方法
CN102137133A (zh) * 2010-01-22 2011-07-27 华为技术有限公司 内容分发的方法、系统及调度服务器
CN101800675A (zh) * 2010-02-25 2010-08-11 华为技术有限公司 故障监控方法、监控设备及通信系统
CN103064860A (zh) * 2011-10-21 2013-04-24 阿里巴巴集团控股有限公司 数据库高可用实现方法及其装置
CN104111937A (zh) * 2013-04-18 2014-10-22 中兴通讯股份有限公司 主、备数据库及其数据一致性检测、修复方法和装置
CN103312541A (zh) * 2013-05-28 2013-09-18 浪潮电子信息产业股份有限公司 一种高可用互备集群的管理方法
CN103458045A (zh) * 2013-09-13 2013-12-18 汉柏科技有限公司 分布式集群的动态部署方法和系统
CN105357038A (zh) * 2015-10-26 2016-02-24 北京百度网讯科技有限公司 监控虚拟机集群的方法和系统

Also Published As

Publication number Publication date
CN107769943A (zh) 2018-03-06

Similar Documents

Publication Publication Date Title
CN107769943B (zh) 一种主备集群切换的方法和设备
CN106341454B (zh) 跨机房多活分布式数据库管理系统和方法
EP3518110B1 (en) Designation of a standby node
CN109901949B (zh) 双活数据中心的应用灾备系统及方法
CN106878473A (zh) 一种消息处理方法、服务器集群及系统
US9037905B2 (en) Data processing failure recovery method, system and program
US10169166B2 (en) Real-time fault-tolerant architecture for large-scale event processing
CN106933843B (zh) 数据库心跳检测方法以及装置
CN106817295A (zh) 一种消息处理装置和方法
WO2011017955A1 (zh) 一种告警数据分析的方法及其系统
US20170351560A1 (en) Software failure impact and selection system
CN110209526B (zh) 一种存储层同步系统、及存储介质
CN103995901B (zh) 一种确定数据节点失效的方法
US10205630B2 (en) Fault tolerance method for distributed stream processing system
US20050234919A1 (en) Cluster system and an error recovery method thereof
US9009735B2 (en) Method for processing data, computing node, and system
CN107291575B (zh) 一种数据中心故障时的处理方法和设备
CN111309515B (zh) 一种容灾控制方法、装置及系统
EP3099012A1 (en) A method for determining a topology of a computer cloud at an event date
CN111737043A (zh) 数据库容灾方法、设备、服务器和存储介质
CN116264541A (zh) 一种基于多维度的数据库容灾方法及装置
CN110198228A (zh) 一种故障监控方法、装置、服务器及存储介质
CN103501320B (zh) 一种利用失效日志计算存储集群可用性的方法
CN113177052A (zh) 一种分布式系统业务数据一致性处理方法、装置
Tian et al. Probabilistic failure detection for efficient distributed storage maintenance

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