具体实施方式
大数据时代是基于数据操作的信息技术时代,由此数据的可靠性、完整性及安全性显得尤为重要。故此,实现数据存储备份,成为了当前急需解决的问题,数据存储备份是为了保证数据的可靠性、完整性及安全性,在发生灾难性的数据故障时,以便于进行数据恢复或者使用备份的数据来提供服务。
在现有技术中,由原先只是在单一业务机房内进行存储改造成同时在多业务机房内进行存储。原先的单一业务机房进行存储,对于分配服务器而言,写数据请求下发的形式为一对一,需要向单一业务机房下发写数据请求,而改造成同时在多业务机房内进行存储,对于分配服务器而言,写数据请求下发的形式为一对多,需要向多业务机房同时下发写数据请求。由此可见原先的业务代码只适用于单一业务机房内进行存储的存储模式,而为了实现同时在多业务机房内进行存储的存储模式,势必需要对原先的业务逻辑进行重新设计,需要修改原先的业务代码来适应在多业务机房内同时进行存储,即实际需要对分配服务器进行改动。原先的业务逻辑比较单一,仅仅需要考虑单一业务机房如何存储的问题,而为了适应在多业务机房内同时进行存储,现有技术方案中需要考虑多业务机房中如何同时存储的问题以及如何保证数据一致性的问题,使得业务逻辑变得复杂,使得在修改原先的业务代码的时候变得复杂,一定程度上加大了存储备份的难度。
针对上述问题,本说明书实施例提供一种数据备份方案,该技术方案应用于网关系统,该网关系统包含至少一个网关节点,对于任一网关节点与业务分配服务器连接,与至少两个业务机房连接,且连接的业务机房互不重复,网关节点与业务分配服务器、业务机房的连接示意图如图2所示,在网关节点上配置网关代理、本地队列及本地业务调度器,对于分配服务器而言,写数据请求下发的形式为一对一,需要向网关节点上的网关代理下发写数据请求,由网关代理将写数据请求转发到业务机房,进而由本地队列及本地业务调度器实现在多业务机房内进行存储。
本说明书实施例中,对于分配服务器下发写数据请求的形式与原先的单一业务机房进行存储时下发写数据请求的形式一致,可以继续使用原先的业务逻辑以及业务代码,意味着本说明书实施例可以在原先单一业务机房进行存储的基础之上,可以直接部署多个业务机房,通过网关代理、本地队列及本地业务调度器即可实现在多业务机房内进行存储,无需对原先的业务进行改动,由此避免了业务代码的修改,大大降低了存储备份的难度。
具体的,在无需改动原先业务的情况下,即可实现在部署的多个业务机房内进行存储备份,所使用的本说明书实施例提供的技术方案如下:
网关代理接收业务分配服务器下发的写数据请求后,按照预设的分配规则将该写数据请求转发到与网关节点连接的多个业务机房中的其中一个业务机房,网关代理接收业务机房对写数据请求的处理结果,在接收到的处理结果为成功的情况下,网关代理将写数据请求添加至本地队列,本地业务调度器监测到本地队列添加新的写数据请求后,将所添加的写数据请求转发到与网关节点连接的多个业务机房中的其它未写入数据的业务机房。
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
本说明书实施例通过对任意网关节点配置网关代理、本地队列及本地业务调度器即可实现在多业务机房内进行存储备份,具体的本说明书实施例提供的技术方案如下:
如图3所示,为本说明书实施例提供的数据备份方法的流程图,该方法可以包括以下步骤:
S301,网关代理接收所述业务分配服务器下发的写数据请求后,按照预设的分配规则将所述写数据请求转发到与所述网关节点连接的多个业务机房中的其中一个业务机房;
本说明书实施例中业务请求可以由网关代理负责转发到业务机房,具体的业务请求可以为写数据请求。其中网关代理在接收到业务分配服务器下发的写数据请求后,按照预设的分配规则将写数据请求转发到与网关节点连接的多个业务机房中的其中一个业务机房,预设的分配规则有多种,本说明书实施例对其中几种分配规则做示例性说明。
其中一种预设的分配规则可以是依序分配,即按照业务机房预先排列好的分配顺序,将写数据请求转发到与网关节点连接的多个业务机房中的其中一个业务机房。作为一个例子,如图2所示的业务机房A、业务机房B以及业务机房C,预先设置好业务机房A、业务机房B以及业务机房C的分配顺序,例如,业务机房A的顺序为1,业务机房B的顺序为2,业务机房C的顺序为3,在网关代理接收到业务分配服务器下发的写数据请求后,优先将写数据请求转发到与网关节点连接的业务机房A,在网关代理接收到业务分配服务器下发的下个写数据请求后,将写数据请求转发到与网关节点连接的业务机房B,以此类推。
其中一种预设的分配规则可以是主从规则,即从与网关节点连接的业务机房中选取一个业务机房为主业务机房,意味着优先将数据存储到主业务机房。其中选取主业务机房的机制可以参考预先为每个业务机房划分的优先级,可以选取优先级最高的业务机房为主业务机房,每个业务机房的优先级可以依据业务机房与业务分配服务器的网络传输距离来划分。作为一个例子,如图2所示的业务机房A、业务机房B以及业务机房C,根据为业务机房A、业务机房B以及业务机房C划分的优先级,选取业务机房B作为主业务机房,在网关代理接收到业务分配服务器下发的写数据请求后,将该写数据请求转发到业务机房B。
另一种预设的分配规则可以是指定业务机房规则,即在写数据请求中指定业务机房,网关代理在接收到业务分配服务器下发的写数据请求后,根据写数据请求中携带的指定业务机房信息,将该写数据请求转发到指定的业务机房。作为一个例子,如图2所示的业务机房A、业务机房B及业务机房C,在写数据请求中指定的业务机房为业务机房C,网关代理在接收到上述写数据请求后,将该写数据请求转发到业务机房C。
值得注意的是,预设的分配规则有多种,本说明书实施例仅仅列举其中几种分配规则,并不是对分配规则的限定,还可以存在其它分配规则,本说明书实施例在此不再一一赘述。
S302,网关代理接收所述业务机房对所述写数据请求的处理结果;
网关代理在将写数据请求转发到与网关节点连接的业务机房中的其中一个业务机房后,该业务机房对写数据请求进行处理,具体的处理为:将写数据请求中携带的待写入数据写入到本地数据存储设备内,其中业务机房将待写入数据写入本地数据存储设备,可能写入成功,也可能写入失败。业务机房将对写数据请求处理的结果发送给网关代理。作为一个例子,网关代理将写数据请求转发到业务机房A,业务机房A在接收到写数据请求后,对其进行处理,将写数据请求中携带的待写入数据写入本地数据存储设备,在写入成功后,将处理成功的结果发送至网关代理。
S303,在接收到的处理结果为成功的情况下,网关代理将所述写数据请求添加至所述本地队列;
网关代理接收业务机房返回的对写数据请求的处理结果,该处理结果可能为处理成功,也可能为处理失败,根据处理结果的不同,做出不同的应对。
在接收到的处理结果为成功的情况下,网关代理将写数据请求添加至本地队列,具体的在添加至本地队列之前,可以判断本地队列当前包含的写数据请求是否超过预设的限制值,其中预先的限制值可以是固定值,例如1000。在本地队列当前包含的写数据请求个数没有超过预设的限制值的情况下,将写数据请求添加至本地队列。在将写数据请求添加至本地队列之后,向业务分配服务器返回处理结果为成功的消息。
在接收到的处理结果为失败的情况下,网关代理向业务分配服务器返回处理结果为失败的消息,该写数据请求不必添加到本地队列。
S304,本地业务调度器监测到所述本地队列添加新的写数据请求后,将所添加的写数据请求转发到与所述网关节点连接的多个业务机房中的其它未写入数据的业务机房。
本说明书实施例实现存储备份,由本地业务调度器来实现:本地业务调度器确定监测本地队列的监测周期;本地业务调度器根据所确定的监测周期监测本地队列是否添加新的写数据请求;在根据所确定的监测周期监测本地队列添加新的写数据请求后,本地业务调度器将所添加的写数据请求转发到与网关节点连接的多个业务机房中的其它未写入数据的业务机房,其它未写入数据的业务机房对所添加的写数据请求进行处理。
作为一个例子,本地队列的监测周期为1秒,本地业务调度器需要每秒监测本地队列是否添加新的写数据请求,一旦监测到本地队列添加新的写数据请求后,将所添加的写数据请求转发到业务机房B以及业务机房C,由业务机房B及业务机房C分别对所添加的写数据请求进行处理。
其中为了避免由于网络延迟等原因导致待写入数据未能成功写入与网关节点连接的多个业务机房中的其它未写入数据的业务机房,本说明书实施例在上述技术方案的基础之上,还可以包括:
S305,网关代理接收与所述网关节点连接的多个业务机房中的其它未写入数据的业务机房对所添加的写数据请求的处理结果;
在接收到其它未写入数据的业务机房对所添加的写数据请求的处理结果为失败的情况下,网关代理通知本地业务调度器将所添加的写数据请求重新转发到与所述网关节点连接的多个业务机房中的其它未写入数据的业务机房。
由于网络延迟等外在因素的影响,有可能导致待写入数据未能成功写入与网关节点连接的多个业务机房中的其它未写入数据的业务机房,为此网关代理接收其它未写入数据的业务机房对所添加的写数据请求的处理结果,根据处理结果的不同,做出不同的应对。例如网关代理接收业务机房B及业务机房C对所添加的写数据请求的处理结果,业务机房B对所添加的写数据请求处理成功,业务机房C对所添加的写数据请求处理失败,则网关代理会通知本地业务调度器将所添加的写数据请求重新转发到业务机房C,又例如在业务机房B以及业务机房C对所添加的写数据请求的处理结果都为成功的情况下,则会从本地队列中删除该写数据请求。
由上述对本说明书实施例提供的技术方案的描述,在网关节点上配置网关代理、本地队列及本地业务调度器,本说明书实施例在原先单一业务机房进行存储的基础之上,可以直接部署多个业务机房,通过网关代理、本地队列及本地业务调度器即可实现在多业务机房内进行存储备份。
应用本说明书实施例提供的技术方案,无需业务改动,避免了业务代码的修改,大大降低了存储备份的难度。
相应于上述方法实施例,本说明书实施例还提供一种数据备份装置,参见图4所示,可以包括:配置模块410、第一转发模块420、处理结果接收模块430、添加模块440、第二转发模块450。
配置模块410,用于对于任意网关节点,配置网关代理、本地队列及本地业务调度器;
第一转发模块420,用于网关代理接收所述业务分配服务器下发的写数据请求后,按照预设的分配规则将所述写数据请求转发到与所述网关节点连接的多个业务机房中的其中一个业务机房;
处理结果接收模块430,用于网关代理接收所述业务机房对所述写数据请求的处理结果;
添加模块440,用于在接收到的处理结果为成功的情况下,网关代理将所述写数据请求添加至所述本地队列;
第二转发模块450,用于本地业务调度器监测到所述本地队列添加新的写数据请求后,将所添加的写数据请求转发到与所述网关节点连接的多个业务机房中的其它未写入数据的业务机房。
根据本说明书提供的一种具体实施方式,所述添加模块440具体用于:
在接收到的处理结果为成功的情况下,网关代理判断所述本地队列包含的写数据请求个数是否超过预设的限制值;
若否,网关代理将所述写数据请求添加至所述本地队列。
根据本说明书提供的一种具体实施方式,所述第二转发模块450具体用于:
本地业务调度器确定监测所述本地队列的监测周期;
本地业务调度器根据所确定的监测周期监测所述本地队列是否添加新的写数据请求;
在根据所确定的监测周期监测所述本地队列添加新的写数据请求后,本地业务调度器将所添加的写数据请求转发到与所述网关节点连接的多个业务机房中的其它未写入数据的业务机房。
根据本说明书提供的一种具体实施方式,所述装置还包括:
请求重发模块460,用于网关代理接收与所述网关节点连接的多个业务机房中的其它未写入数据的业务机房对所添加的写数据请求的处理结果;
在接收到其它未写入数据的业务机房对所添加的写数据请求的处理结果为失败的情况下,网关代理通知本地业务调度器将所添加的写数据请求重新转发到与所述网关节点连接的多个业务机房中的其它未写入数据的业务机房。
根据本说明书提供的一种具体实施方式,所述装置还包括:
消息返回模块470,用于在将所述写数据请求添加至所述本地队列之后,网关代理向所述业务分配服务器返回处理结果为成功的消息。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
由上述对本说明书实施例提供的技术方案的描述,在网关节点上配置网关代理、本地队列及本地业务调度器,本说明书实施例在原先单一业务机房进行存储的基础之上,可以直接部署多个业务机房,通过网关代理、本地队列及本地业务调度器即可实现在多业务机房内进行存储备份。
应用本说明书实施例提供的技术方案,无需业务改动,避免了业务代码的修改,大大降低了存储备份的难度。
本说明书实施例还提供一种计算机设备,如图5所示,该设备可以包括:处理器510、存储器520、输入/输出接口530、通信接口540和总线550。其中处理器510、存储器520、输入/输出接口530和通信接口540通过总线550实现彼此之间在设备内部的通信连接。
处理器510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器520可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行。
输入/输出接口530用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口540用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线550包括一通路,在设备的各个组件(例如处理器510、存储器520、输入/输出接口530和通信接口540)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器510、存储器520、输入/输出接口530、通信接口540以及总线550,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的数据备份生成方法。该方法至少包括:
一种数据备份方法,该方法包括:
网关代理接收所述业务分配服务器下发的写数据请求后,按照预设的分配规则将所述写数据请求转发到与所述网关节点连接的多个业务机房中的其中一个业务机房;
网关代理接收所述业务机房对所述写数据请求的处理结果;
在接收到的处理结果为成功的情况下,网关代理将所述写数据请求添加至所述本地队列;
本地业务调度器监测到所述本地队列添加新的写数据请求后,将所添加的写数据请求转发到与所述网关节点连接的多个业务机房中的其它未写入数据的业务机房。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。