数据备份方法与应用处理系统的制作方法

文档序号:7667932阅读:526来源:国知局
专利名称:数据备份方法与应用处理系统的制作方法
技术领域
本发明涉及数据备份技术领域,具体涉及数据备份方法与应用处理系统。
背景技术
目前,在很多关键应用中都要求处理系统具有非常高的可用性(HA: Highly Available),例如电信系统,银行系统和账单系统等,这些系统需要在 任何时间都是可用的,同时还要保证响应的速度。为确保系统的高可用性,往 往对系统中的关键模块进行冗余配置,使得当该模块不能正常工作的时候,对 应的冗余模块可以接替其工作继续提供应用服务。通常,将正常工作的模块称 为主用(Active)模块,将冗余模块称为备用(Standby)模块,显然这两个名 称是基于模块的使用状态而言的,在主用模块发生故障时,业务处理切换到原 来的备用模块,即此时备用模块即升级为主用模块,而原来的主用模块则停止 运行或降级为备用模块,以便进行维修或更换等处理。
一般情况下主用模块的关键状态信息等数据需要备份到备用模块中,以便 备用模块在升级为主用模块的时候,能够继续不间断工作。目前,主要有以下 两种方法来进行运行中的数据备份
一、检查点(CKPT: Checkpoint)服务
检查点服务允许进程对运行数据进行备份,以便于故障恢复时可以恢复到 最后正常运行时的状态。业界定义了 Checkpointing机制进行运行数据的保存, 每次保存的运行时数据称为Checkpoint检查点。Checkpointing即表示利用业 务运行时通过打点将运行数据保存起来的一种机制,参考图1,主用模块在运 行时不断将工作信息记录到检查点,主备倒换后,备用模块从检查点读取当前 的工作记录信息,即可开始正常工作。
本发明的发明人在对此方法的研究和实践过程中发现,通常会有很多请求 发送到主用模块中等待处理,如果主用模块突然发生严重故障,那么这些未处 理消息将会丢失;并且,对于已经处理的消息,若主用模块尚未完成备份就出 现严重问题,在还未备份的情况下会造成数据无备份,在备份正在进行的情况
下则会导致备份不完整,影响备用模块获取数据的可靠性;此外,由于备份数 据保存在检查点中,备用模块在倒换的时候读取备份数据需要花费时间,业务 恢复时延比较长,影响系统性能。 二、消息队列技术
参考图2,该方法是将请求消息发送到消息服务器并緩存在消息队列中, 等待应用模块来获取消息。主用模块从消息队列中获取消息进行处理,主用模 块处理消息后把相关数据备份到备用模块中。主用模块故障后,备用模块升级 为主用模块并继续获取消息队列中的消息进行处理。
本发明的发明人在对此方法的研究和实践过程中发现,消息服务器成为系 统可用性的关键点,若消息服务器异常则系统也无法正常工作,因此需要设计 消息服务的冗余备份,这相当于将系统的可用性转移到消息服务器的可用性 上,不能从根本上解决可用性问题;并且,主用模块从消息队列获取消息,若 正在处理或尚未完成数据备份时发生异常,将造成该消息或者该消息?I起的数 据变化丢失。

发明内容
本发明实施例提供数据备份方法和应用处理系统,用于解决主用模块在运 行中突发故障时未处理的消息丟失或数据备份不完整的问题。
一种数据备份方法,包括对接收到的消息作可识别的标记;将标记后的 消息分别发送给主用模块和备用模块;由主用模块对收到的标记后的消息进行 处理,并且将对消息的处理结果和相应消息的标记绑定发送给备用模块;由备 用模块对收到的标记后的消息进行緩存,在收到主用模块发送的处理结果和绑 定的标记后,根据所述处理结果进行数据备份,并且根据所述标记删除緩存的 与所述标记对应的消息。
一种应用处理系统,包括至少一个消息分发模块、主用模块、备用模块; 所述消息分发模块,用于接收需要处理的消息;对接收到的消息作可识别的标 记;将标记后的消息分别发送给所述主用模块和所述备用模块;所述主用模块, 用于对收到的标记后的消息进行处理,并且将对消息的处理结果和相应消息的 标记绑定发送给所述备用模块;所述备用模块,用于对收到的标记后的消息进
行緩存,在收到所述主用模块发送的处理结果和绑定的标记后,根据所述处理 结果进行数据备份,并且根据所述标记删除緩存"与所述标记对应的消息。
本发明实施例的技术方案中,消息在标记后被分别发送给主用和备用模 块,备用模块在收到主用模块的处理结果后才删除緩存中与相应标记对应的消
息;在主用模块突然异常时,备用模块若已获得备份凄丈据,则该备份数据是完 整的;若还未获得备份数据,可以对没有收到处理结果的消息继续进行处理, 不会造成未处理的消息丟失或备份数据不完整;并且由于消息分发过程并不保 存消息,因此是无状态的,很容易进行冗余部署,不会带来额外的可用性要求。


图l是现有一种数据备份方法示意图2是现有另 一种数据备份方法示意图3是本发明实施例 一数据备份方法的流程示意图4是本发明实施例二数据备份方法的流程示意图5是本发明实施例三数据备份方法的流程示意图6是本发明实施例四数据备份方法的流程示意图7是本发明实施例的应用处理系统的基本逻辑结构示意图8是本发明实施例的应用处理系统的一种部署方式示意图9是本发明实施例的应用处理系统的另 一种部署方式示意图。
具体实施例方式
本发明实施例提供数据备份方法,消息在标记后被分别发送给主用和备用 模块,备用模块在收到主用模块的处理结果后才删除緩存中与相应标记对应的 消息。本发明实施例还提供相应的应用处理系统。以下分别进行详细说明。
实施例一、 一种数据备份方法,参考图3,包括如下步骤 Al 、对接收到的消息作可识别的标记。
可将执行该操作的逻辑单元称为消息分发模块,用来接收其他模块发送过 来的需要处理的消息。所称可识别的标记用于区分消息,具体可采用任何能够 令应用模块识别的方式,例如编号、加时间戳等。200710198608.X
说明书第4/9页
基于区分的作用,所使用的标记在一定时间范围内需要保证唯一性,以使 得处理模块.(主用和备用模块)中緩存的消息的标记不重复,可根据实际系统
的需要设计算法来保证标记的唯一性, 一种可选的方式是以编号作为标记, 所称编号为消息分发模块的启动时间与顺序编排的序列号的组合。 A2、将标记后的消息分别发送给主用模块和备用模块。 图3中将发送给主用模块记为A2a,将发送给备用模块记为A2b。 显然消息分发模块所执行的是即时性操作,不需要保存消息,因此消息分 发模块是无状态的(即没有保存数据,当前的处理过程和之前数据没有关系), 因此能够非常方便的进行冗余部署。例如,可部署两个消息分发模块,若其中 之一发生故障,则直接使用另一个进行消息编号和分发即可,消息分发模块的 主用和备用之间无需数据关联。
A3a、由主用模块对收到的标记后的消息进行处理。 此处理过程可按照该模块提供的应用功能执行,本实施例中不作限定。 A3b、由备用模块对收到的标记后的消息进行緩存。 由于标记后的消息被分别发送给主用模块和备用模块,因此,主用模块的 消息处理与备用模块的消息緩存可并行的执行。
A4、由主用模块将对消息的处理结果和相应消息的标记绑定发送给备用 模块。
所称对消息处理的结果,指主用模块进行消息处理后发生的数据变化或生 成的结果等与消息处理相关的信息;本实施例中,以发生的数据变化为例,主 用模块发送的对消息的处理结果为需要备用模块进行备份的数据。
主用模块可以在每处理完成一个消息后进行一次数据备份,当然,也可以 进行批备份,即,将对一个以上消息的处理结果和相应消息的标记的列表绑定 发送给备用模块。
主用模块可采用同步或异步通信方式将标记和处理结果绑定同时发送给 备用模块。为进一步的提高系统性能,具体可选择异步通信方式。
A5、由备用模块在收到主用模块发送的处理结果和绑定的标记后,根据 处理结果进行数据备份,并且根据所绑定的标记删除緩存的与该标记对应的消
息。
本实施例中,主用模块发送的处理结果即为备份数据,因此备用模块可直 接进行备份,此时由所绑定的标记对应的消息引起的数据变化已被备份保存, 因此备用模块即可从緩存中删除相应的消息。当主用模块突发故障导致主备倒 换时,备用模块只需根据所緩存的消息,继续处理即可。
本发明实施例使得主用模块突然异常时,备用模块若已获得备份数据,则
该备伤^t据是完整的;若还未获得备4分lt据,可以对没有收到处理结果的消息 继续进行处理,不会造成未处理的消息丟失或备份数据不完整;并且主备倒换 时,备用模块是从自身緩存的消息继续进行处理,因此无需消耗额外的业务恢 复时间,系统响应性能好。
实施例二、 一种数据备份方法,参考图4,本实施例与实施例一相比增加 了主用模块发送响应消息的处理,适用于需要返回响应的应用处理情况。包括 如下步骤
Bl、对接收到的消息作可识别的标记。 B2、将标记后的消息分别发送给主用模块和备用模块。 图4中将发送给主用模块记为B2a,将发送给备用模块记为B2b。 B3a、由主用模块对收到的标记后的消息进行处理。 B3b、由备用模块对收到的标记后的消息进行緩存。 B4、由主用模块将需要备用模块进行备份的数据和相应消息的标记绑定 发送给备用模块。
B5a、由主用模块在确认需要进行备份的数据发送到备用模块后,发送与 所处理消息对应的响应消息。
基于模块间具体使用的通信模式,主用模块可以采用不同的方式确认内容 已发送到备用模块。例如,若主用模块与备用模块之间采用底层可靠通信,则 主用模块发送成功,即可确认备用模块收到;再如,若主用模块与备用模块之 间的底层通信是不可靠的,也可采用在通信层面的确认机制,即由备用模块在 收到主用模块发送的内容后,向主用模块返回确认信息,主用模块即可确认备 用模块收到,从而发送响应消息给该响应消息的接收者(例如,向消息分发才莫
块发送请求消息的模块)。
B5b、由备用模块在收到主用模块发送的处理结果和绑定的标记后,根据 处理结果进行数据备份,并且根据所绑定的标记删除緩存的与该标记对应的消 自
上述步骤中除步骤B5a外,均可参照实施例一中的相应步骤4丸行。实施例 一可适用于无需对消息进行响应的情况,本实施例则适用于需要对请求消息进 行响应的情况。
实施例三、 一种数据备份方法,参考图5,本实施例与实施例一相比增加
了备用模块发送响应消息的处理,适用于需要返回响应的应用处理情况。包括 如下步骤
Cl 、对接收到的消息作可识别的标记。 C2、将标记后的消息分别发送给主用模块和备用模块。 图5中将发送给主用模块记为C2a,将发送给备用模块记为C2b。 C3a、由主用模块对收到的标记后的消息进行处理。 C3b、由备用模块对收到的标记后的消息进行緩存。 C4、由主用模块将对消息的处理结果和相应消息的标记绑定发送给备用 模块。
本实施例中,主用模块发送的对消息的处理结果除了包含需要备用模块进 行备份的数据以外,还包含与所处理消息对应的响应消息。
C5、由备用模块在收到主用模块发送的响应消息后,发送该响应消息。 本实施例中由备用模块来发送响应消息,即可无需像实施例二中一样,由 主用模块在确认备用模块已收到后再发送响应消息。
C6、由备用模块在收到主用模块发送的处理结果和绑定的标记后,根据 处理结果中的需要进行备份的数据进行数据备份,并且根据所绑定的标记删除 緩存的与该标记对应的消息。本步骤与步骤C5可并行执行,也可顺序执行。
上述步骤中除步骤C4、 C5外,均可参照实施例一中的相应步骤执行。
之处在于,备用模块的备份数据不直接来自主用模块而是根据原消息和响应消
息生成。包括如下步骤 ' Dl 、对接收到的消息作可识别的标记。 D2、将标记后的消息分别发送给主用模块和备用模块。 图6中将发送给主用模块记为D2a,将发送给备用模块记为D2b。 D3a、由主用模块对收到的标记后的消息进行处理。 D3b、由备用模块对收到的标记后的消息进行緩存。 D4、由主用模块将对消息的处理结果和相应消息的标记绑定发送给备用模块。
本实施例中,主用模块发送的对消息的处理结果包含与所处理消息对应的 响应消息,而不直接携带需要备用模块进行备份的数据。
D5、由备用模块在收到主用模块发送的响应消息后,发送该响应消息。
D6、由备用模块在收到主用模块发送的响应消息和绑定的标记后,根据 响应消息计算出需要进行备份的数据,按照计算出的数据进行数据备份,即改 变内部的状态数据;并且根据所绑定的标记删除緩存的与该标记对应的消息。
例如,在电信应用系统中,若主用模块收到的消息为用户A开通业务B的 请求,主用模块处理后发送给备用模块的响应消息为确认用户A开通业务B的 确认消息,则备用模块即可根据该响应消息计算出需要进行备份的数据为用户 A的业务B的状态数据(状态为已开通),并据此进行^1:据备份,即修改用户A 的业务B的状态数据为已开通。
本步骤与步骤D5可并行^M亍,也可顺序执行。
上述步骤中除步骤D4、 D6外,均可参照实施例三中的相应步骤执行。
下面对本发明实施例的应用处理系统进行详细i兌明。
参考图7,本发明实施例的应用处理系统,主要包括
消息分发模块101,用于接收需要处理的消息;对接收到的消息作可识别 的标记;将标记后的消息分别发送给主用模块102和备用模块103。
主用模块102,用于对收到的标记后的消息进行处理,并且将对消息的处 理结果和相应消息的标记绑定发送给备用模块103;备用模块103,用于对收到的标记后的消息进行緩存,在收到主用模块102 发送的处理结果和绑定的标记后,根据收到的处理结果进行数据备份,并且根 据绑定的标记删除緩存的与该标记对应的消息。
当然,对应于应用处理系统中需要返回响应消息的情形,主用模块或备用 模块还可进一步用于,发送与主用模块所处理消息对应的响应消息。具体数据 交换和处理逻辑可参照前述方法实施例^没计。
比如,若主用模块发送的对消息的处理结果包括与所处理消息对应的响应 消息;则备用模块可采用如下结构,包括
緩存单元,用于对收到的标记后的消息进行緩存;
处理单元,用于获取主用模块发送的响应消息和绑定的标记,根据响应消 息计算出需要进行备份的数据,按照计算出的数据进行数据备份;根据绑定的 标记删除緩存单元中緩存的与该标记对应的消息。
本发明实施例应用处理系统中的消息分发模块可以有一个以上,以便于切 换使用。由于消息分发模块是无状态模块,因此,其冗余部署非常简单,多个 设置即可,在切换时,各个冗余部署的消息分发模块均可直接使用。例如,可 部署两个消息分发;f莫块,用于交替切换使用,根据启用情况可分别称为消息分 发主用模块和消息分发备用模块。
本发明实施例应用处理系统中的消息分发模块、主用模块、备用模块的其 中之一或任意组合可分别部署于相同或不同的计算节点(Node)。考虑到运行 环境例如硬件和通信故障等,主用模块和备用模块宜各部署在不同计算节点 上;消息分发模块的冗余部署则可选择如下两种方式
① 参考图8,将两个消息分发模块分别部署在与主用模块(Node 1)和备 用模块(Node2)不同的计算节点上(Node 3和Node 4 )。图8中与Node3上消 息分发模块连接的实线表示该模块为消息分发主用模块时的情形,此时Node 4 上的消息分发模块为消息分发备用模块;与Node 4上消息分发模块连接的虚线 表示该模块为消息分发主用模块时的情形,此时Node 3上的消息分发模块为消 息分发备用模块。
② 参考图9,考虑到节省硬件成本,可以将主用模块与消息分发模块之一
部署于同一计算节点(Node 1),将备用模块与消息分发模块之一部署于另一
计算节点(Node2)。图9中与Nodel上消息分发模块连接的实线表示该模块为
消息分发主用模块时的情形,此时Node 2上的消息分发模块为消息分发备用模
块;与Node2上消息分发模块连接的实线表示该模块为消息分发主用模块时的
情形,此时Node l上的消息分发模块为消息分发备用模块。
本发明实施例的技术方案通过对消息进行标记使得备用模块在收到处理 结果和绑定的标记的时候能够获知主用模块处理了哪些消息,在主用突然异常
情况下,备用模块升级为主用模块后,备用模块若已获得备份数据,则该备份 数据是完整的;若还未获得备份数据,可以对緩存中的消息(即没有收到备份 数据的消息)继续进行处理,解决未处理消息丢失或备份数据不完整的问题。 并且,对主备模块同时发送消息使得消息緩存和处理消息能够并行进行,提高 了系统的性能;同时,消息分发模块无需保存消息,容易做到冗余,避免消息 服务单点故障造成的可用性问题或冗余的复杂度。主用和备用模块之间可采用 异步通信方式,能够进一步的提高系统性能。
以上对本发明实施例所提供的数据备份方法和应用处理系统进行了详细
施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域 的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改 变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种数据备份方法,其特征在于,包括对接收到的消息作可识别的标记;将标记后的消息分别发送给主用模块和备用模块;由主用模块对收到的标记后的消息进行处理,并且将对消息的处理结果和相应消息的标记绑定发送给备用模块;由备用模块对收到的标记后的消息进行缓存,在收到主用模块发送的处理结果和绑定的标记后,根据所述处理结果进行数据备份,并且根据所述标记删除缓存的与所述标记对应的消息。
2、 根据权利要求l所述的数据备份方法,其特征在于,所述对接收到的消 息作可识别的标记具体为对接收到的消息进行编号,所述编号为启动接收的 时间与顺序编排的序列号的组合。
3、 根据权利要求l所述的数据备份方法,其特征在于,所述主用模块将对 消息的处理结果和相应消息的标记绑定发送给备用模块具体为主用模块将对 消息的处理结果和相应消息的标记绑定,采用异步或同步通信方式发送给备用 模块。
4、 根据权利要求l所述的数据备份方法,其特征在于,所述主用模块将对 消息的处理结果和相应消息的标记绑定发送给备用模块具体为主用模块将对 一个或一个以上消息的处理结果和相对应消息的标记的列表绑定发送给备用 模块。
5、 根据权利要求l-4任意一项所述的数据备份方法,其特征在于所述 主用模块发送的对消息的处理结果包括需要备用模块进行备份的数据。
6、 根据权利要求5所述的数据备份方法,其特征在于,还包括由主用模块在确认所述需要进行备份的数据发送到备用模块后,发送与所 处理消息对应的响应消息。
7、 根据权利要求l-4任意一项所述的数据备份方法,其特征在于所述 主用模块发送的对消息的处理结果包括需要备用模块进行备份的数据和与所 处理消息对应的响应消息;所述数据备份方法还包括由备用模块在收到所述响应消息后,发送所述响应消息。
8、 根据权利要求l 4任意一项所述的it据备份方法,其特征在于所述 主用模块发送的对消息的处理结果包括与所处理消息对应的响应消息;所述由备用模块根据处理结果进行数据备份具体为由备用模块根据收到 的响应消息计算出需要进行备份的数据,按照计算出的数据进行数据备份; 所述数据备份方法还包括由备用模块在收到所述响应消息后,发送所述响应消息。
9、 一种应用处理系统,其特征在于,包括至少一个消息分发模块、主用 模块、备用模块;所述消息分发模块,用于接收需要处理的消息;对接收到的消息作可识别 的标记;将标记后的消息分别发送给所述主用模块和所述备用模块;所述主用模块,用于对收到的标记后的消息进行处理,并且将对消息的处 理结果和相应消息的标记绑定发送给所述备用模块;所述备用模块,用于对收到的标记后的消息进行緩存,在收到所述主用模 块发送的处理结果和绑定的标记后,根据所述处理结果进行数据备份,并且根 据所述标记删除緩存的与所述标记对应的消息。
10、 根据权利要求9所述的应用处理系统,其特征在于所述主用模块发 送的对消息的处理结果包括需要备用模块进行备份的数据;所述主用模块还用于,在确认所述需要进行备份的数据发送到备用模块 后,发送与所处理消息对应的响应消息。
11、 根据权利要求9所述的应用处理系统,其特征在于所述主用模块发 送的对消息的处理结果包括与所处理消息对应的响应消息;所述备用模块还用于,在收到所述响应消息后,发送所述响应消息。
12、 根据权利要求9所述的应用处理系统,其特征在于所述主用模块发 送的对消息的处理结果包括与所处理消息对应的响应消息;所述备用模块包括緩存单元,用于对收到的标记后的消息进行緩存;处理单元,用于获取所述主用模块发送的响应消息和绑定的标记,根据所述响应消息计算出需要进行备份的数据,按照计算出的数据进行数据备份;根 据所述'绑定的标记删除緩存的与所述标记对应的消息。
13、 根据权利要求9-12任意一项所述的应用处理系统,其特征在于 所述消息分发模块为两个,分别为消息分发主用模块和消息分发备用模块,用于交替切换使用。
14、 根据权利要求13所述的应用处理系统,其特征在于 所述消息分发模块、主用模块、备用模块分别部署于不同的计算节点;或者,所述主用模块与消息分发模块之一部署于同一计算节点,所述备用模块与 消息分发模块之一部署于另 一计算节点。
全文摘要
本发明实施例公开了一种数据备份方法,消息在标记后被分别发送给主用和备用模块,备用模块在收到主用模块的处理结果和绑定的标记后才删除缓存中与相应标记对应的消息。本发明实施例还提供相应的应用处理系统。本发明实施例使得主用模块突然异常时,备用模块可以对没有收到处理结果的消息继续进行处理,不会造成未处理消息丢失或备份数据不完整;并且由于消息分发过程并不保存消息,因此是无状态的,很容易对消息分发模块进行冗余部署,不会带来额外的可用性要求。
文档编号H04L12/24GK101183990SQ200710198608
公开日2008年5月21日 申请日期2007年12月11日 优先权日2007年12月11日
发明者蓝智能 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1