一种多数据中心的数据同步方法

文档序号:9551426阅读:1582来源:国知局
一种多数据中心的数据同步方法
【技术领域】
[0001]本发明涉及数据同步领域,特别涉及一种多数据中心的数据同步方法。
【背景技术】
[0002]为存储海量数据,各互联网公司在世界各地建立了庞大的数据中心,存储其全球用户每天产生的海量数据,单个数据中心的终端的主机数量在几百万至数万的数量级不等。对这些数据的管理和使用都是巨大的挑战:包括数据的读取和存储、索引和寻址、配置和管理的接口、数据中心之间的数据复制等。为保持这些数据的一致性,在不同地理位置的数据中心之间进行数据同步和复制成为越来越迫切的需求。
[0003]对于电子商务领域来说,以多数据中心部署的方式来提高访问速度,从而提高用户的体验,是一种通常的做法。但是跨公网网络,尤其是跨国际公网网络常常会出现一些不稳定情况,如网络丢包,网络中断等。常规做法是采用专线连接各个数据中心,但这种做法成本大,对于中小企业而言,投入产出比极低。
[0004]相比较而言,依靠软件方法,采用消息队列技术作为数据传输的载体,通过消息机制保证数据的及时性、准确性和可恢复性,这是一种比较实际和相对可靠做法。
[0005]CN 104539663A 一种跨数据中心的数据同步方法和装置公开一种跨数据中心的数据同步方法和系统,具体包括:收集待同步数据中心的键值对数据;以及利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。本发明重点在于主、备数据中心之间的传输方法,并未过多涉及到多数据中心间的数据传输。
[0006]CN103763368A 一种跨数据中心的数据同步方法公开一种跨数据库同步的方法,其具体实现过程为:完成数据的写入与日志的记录;同步调度与推送;日志回放,完成数据同步;进行跨数据中心的数据访问,实现异步数据同步操作。该发明能够实现跨数据中心的异步数据同步操作,提高数据的安全性;有效地利用数据中心内部的10资源和数据中心之间的网络资源,但该方法主要通过日志回放的方式来实现,这与本发明通过传输少量数据,实时返回同步状态的做法存在很大不同;
[0007]CN 104572921A —种跨数据中心的数据同步方法和装置公布了一种跨数据中心的数据同步和装置,具体包括:收集待同步数据中心的键值对数据;以及利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。本发明通过减少对各数据中心的访问次数减轻对各数据中心的线上访问压力,其着重在对各分布式计算环境中的数据在各数据中心进行比较,并未提及将数据分发至各数据中心进行同步的方式。

【发明内容】

[0008]为解决现有技术存在的局限性,本发明目的是,提供一种跨数据中心的数据同步方法,目的是在复杂网络中完成数据传输,保证数据有序、且不被丢失。
[0009]本发明的技术方案是,一种多数据中心的数据同步方法,具体包括:
[0010]步骤1:变更数据的获取:各应用系统以消息的方式向本系统数据中心的客户端发送数据变更请求,客户端接收到经序列化的请求后,对所接收的消息在当前数据中心内进行持久化;
[0011]所述客户端,是部署在服务器端的应用,用于接收服务器端发出的数据,并按照业务需求执行数据同步操作;所述服务器端运行时,一方面用于获取应用系统需要在多数据中心同步执行的数据,一方面用于将数据分发给各个需数据同步的数据中心的客户端
[0012]所述持久化,是客户端将消息存储到硬件上,可以是数据库、缓存及分布式缓存;
[0013]步骤2:变更数据的分发:根据当前业务事务严格性要求,当前数据中心选择处理或转发变更数据;如若数据中心选择处理变更数据,应用系统先执行数据,待确认执行成功后,再将变更数据分发至各数据中心;如若选择转发变更数据,当前数据中心在保存变更数据的同时,将变更数据分发至其他需要数据同步的数据中心;
[0014]所谓事务严格性要求,指是否需要保证所有数据中心的数据变更一致性;
[0015]步骤3:变更数据的同步执行:数据到达目的各自数据中心之后的同步执行操作;
[0016]步骤4:变更发回到数据的执行情况汇总:将数据执行情况以消息的形式发回到数据产生的数据中心;
[0017]步骤5:失败数据的定向重发:定时分析各数据中心发出的数据同步执行情况,针对不超过预设重发次数N的失败同步或无返回状态的同步,数据产生的数据中心将重发送变更数据至未成功执行数据同步的数据中心,同时更新重新发送的次数;
[0018]步骤6:多数据中心的同步数据运转监控与异常报警:变更数据被重新发送到目的数据中心后的处理;
[0019]步骤2中如若数据中心选择处理变更数据,具体步骤包括:
[0020]步骤2-1:数据由请求同步方执行完成后,将变更数据以消息的方式发送给当前数据中心的客户端,客户端对变更数据进行持久化,同时记录数据中心接收该消息的时间;
[0021]特别地,请求同步方是指发出数据变更请求的应用系统;
[0022]步骤2-2:客户端查找并统计除当前数据中心以外的其他数据中心,并将消息复制成相应的份数,提交至数据中心的服务端;
[0023]步骤2-3:服务端遵照TCP协议将变更数据分发给各数据中心;
[0024]如若数据中心选择转发变更数据,当前数据中心在保存变更数据的同时,将变更数据分发至其他需要数据同步的数据中心,具体步骤包括:
[0025]步骤2-4:请求同步方将变更数据提交至当前数据中心的客户端,客户端对消息进行持久化,并记录接收消息的时间;
[0026]请求同步方是指发出数据变更请求的应用系统;
[0027]步骤2-5:客户端查找并统计所有需要数据同步的数据中心,并将变更数据以消息形式发送给数据中心服务端;
[0028]步骤2-6:数据中心服务端按照TCP协议将变更数据分发至包括当前数据中心在内的各数据中心;
[0029]请求同步方是指发出数据变更请求的应用系统。
[0030]针对步骤2中采用的方法不同,相应地,步骤3的变更数据同步执行具体步骤为:步骤3:变更数据的同步执行:数据到达目的各自数据中心之后的同步执行操作;
[0031]针对步骤2中的第一种变更数据分发情况,变更数据的同步执行具体包括:
[0032]步骤3-1:数据中心服务端接收到变更数据的消息后,将消息分发给各自数据中心的客户端;
[0033]步骤3-2:各数据中心客户端接收到消息后,将变更数据的消息序列化至各数据中心的数据库中进行持久化,同时记录消息已到达状态;
[0034]步骤3-3:客户端执行数据同步,执行完成后,更新数据状态,即更新成功、失败等;
[0035]针对步骤2中的第二种变更数据分发情况,变更数据的同步执行前不做持久化处理,具体步骤没有上述的步骤3-1和3-2,直接执行步骤3-3 ;
[0036]步骤4:变更数据的执行情况汇总:将数据执行的情况,以消息的形式发回到数据产生的数据中心;收集不同数据中心返回的数据执行情况;
[0037]各数据中心将数据执行情况以消息的形式发回至产生数据的数据中心的服务端;执行情况包括分为执行成功、执行失败和未返回执行情况三种;
[0038]服务端的消息队列获取到执行情况的消息后,将各数据中心的数据同步执行结果更新到持久化过的数据库条目中,并在条目中标记已成功实现同步的数据中心,同时记录数据条目更新时间;
[0039]所谓数据条目,指数据库记录各数据中心执行数据同步结果的数据格式;一个数据条目中包括数据变更消息ID号、各个数据中心的名称、数据同步执行失败原因;
[0040]步骤5:失败数据的定向重发:定时分析各数据中心发出的数据同步执行情况,针对不超过N次的失败同步或无返回状态的同步,数据产生的数据中心将重新发送变更数据至为未成功执行数据同步的数据中心,同时更新重新发送的次数;
[0041]具体涉及的步骤有:
[0042]步骤5-1:设定对各数据中心进行数据检查
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1