跨数据中心数据同步系统及方法技术方案

技术编号:15298919 阅读:228 留言:0更新日期:2017-05-12 00:36
本发明专利技术提供了一种跨数据中心数据同步系统及方法,用于将源数据中心的数据同步到目的数据中心,所述源数据中心和所述目的数据中心均设置有多个RPC客户端和多个RPC服务器,在所述目的数据中心中设置有数据搬运装置,所述系统还包括数据搬运管理装置;所述数据搬运管理装置,用于管理源消息队列和目的消息队列,以及,控制启动或关闭所述数据搬运装置从源消息队列获取数据;所述数据搬运装置,用于从源消息队列获取数据,并将所获取的数据存入到目的消息队列中。本发明专利技术可提高数据同步的灵活性和可靠性。

System and method for data synchronization across data centers

The invention provides a cross data center data synchronization system and method for synchronization of source data center to data center, the source data center and the data center are provided with a plurality of RPC client and multiple RPC servers in the data center to set data handling device and the system also includes a data handling management device; the data handling management system for the management of source to the message queue and message queue, and control, start or stop the data handling device for obtaining data from the source message queue; the data handling device for obtaining data from the source message queue, and will get the purpose of the data stored in the message queue. The invention can improve the flexibility and reliability of data synchronization.

【技术实现步骤摘要】

本专利技术涉及计算机及互联网
,特别是涉及一种跨数据中心数据同步系统及方法
技术介绍
随着互联网时代的到来,社交网络、微博、位置服务等面向普通互联网用户的交互网站正蓬勃兴起,各种网站向数以亿计的用户提供基于互联网和无线网络的交互服务。遍布全世界的互联网用户每天都进行多种多样的交互,随时都在制造各种个样的数据,这些数据的数量是单机时代数据量的数倍。为了可靠地保存这些数据,互联网公司会将服务器分布在多个城市的不同数据中心,同时将数据在不同的数据中心进行备份,因此,需要在不同的数据中心之间进行数据同步。而对于大量与时间序列相关的数据,在进行跨数据中心同步时,需要根据数据的生成时间有序地进行同步,乱序的数据将破坏原有数据的准确性。并且,由于异构数据存储系统的大量存在,数据同步系统需要很好地支持多语言。现有的数据同步方案主要包括专有数据同步和应用层数据同步两种方式。在专用数据同步方式中,设置有支持跨数据中心数据同步的数据库,例如Mysql、Hbase等,依赖这类特定的数据库来实现不同数据中心的数据同步。这种方案会限制用户的数据只能存储在特定的数据存储系统中,用户无法灵活地选取合适的数据存储系统,并且,数据无法在异构数据源之间进行同步。在应用层数据同步方式中,需要进行应用层双写和应用层链式多写,通过应用层实现将数据写到多个数据中心。在双写和链式多写下,只有将数据同时在多个数据中心写成功才能被确认为写成功。但是在网络抖动较大的情况下,双写和链式多写都会严重影响应用层的性能,并且在异常情况下无法保证数据的有序性。
技术实现思路
为了提高数据同步的灵活性和可靠性,本专利技术实施例提供一种跨数据中心数据同步系统及方法。根据本专利技术实施例的一个方面,提供一种跨数据中心数据同步系统,用于将源数据中心的数据同步到目的数据中心,所述源数据中心和所述目的数据中心均设置有多个RPC客户端和多个RPC服务器,在所述目的数据中心中设置有数据搬运装置,所述系统还包括数据搬运管理装置;所述数据搬运管理装置,用于管理源消息队列和目的消息队列,以及,控制启动或关闭所述数据搬运装置从源消息队列获取数据;所述数据搬运装置,用于从源消息队列获取到数据,并将所获取的数据存入到目的消息队列中。优选的,所述数据搬运管理装置,还用于设定所述源消息队列和所述目的消息队列的映射对应关系;所述数据搬运装置将所获取的数据存入到源消息队列对应的目的消息队列中。优选的,在所述源数据中心的RPC服务器中设置所述源消息队列,在所述目的数据中心的RPC服务器中设置所述目的消息队列。优选的,所述源消息队列和所述目的消息队列均是基于日志存储的分布式队列。优选的,所述数据搬运装置包括消息生产端和消息消费端,所述消息消费端用于从源消息队列获取数据,所述消息生产端用于将所述消息消费端获取的数据存入到目的消息队列中。优选的,所述RPC客户端和RPC服务端之间通过IDL定义通信协议,通过IDL文件编译成语言代码,从而实现在数据中心支持所述语言的数据通信。根据本专利技术实施例的另一个方面,提供一种跨数据中心数据同步方法,用于将源数据中心的数据同步到目的数据中心,所述源数据中心和所述目的数据中心均设置有多个RPC客户端和多个RPC服务器,所述方法包括:管理所述源数据中心的源消息队列以及所述目的数据中心的目的消息队列,以及,控制启动或关闭所述目的数据中心的数据搬运装置从源消息队列获取数据;所述数据搬运装置从所述源消息队列获取数据,并将所获取的数据存入到所述目的消息队列中。优选的,上述方法还包括:设定所述源消息队列和目的消息队列的映射对应关系;所述数据搬运装置将所获取的数据存入到源消息队列对应的目的消息队列中。优选的,所述源消息队列设置在所述源数据中心的RPC服务器中,所述目的消息队列设置在所述目的数据中心的RPC服务器中。优选的,所述源消息队列和所述目的消息队列均是基于日志存储的分布式队列。优选的,所述数据搬运装置包括消息生产端和消息消费端,所述消息消费端用于从源消息队列获取数据,所述消息生产端用于将所述消息消费端获取的数据存入到目的消息队列中。优选的,上述方法还包括:采用IDL定义所述RPC客户端和RPC服务端之间的通信协议,通过IDL文件编译成语言代码,实现在数据中心支持所述语言的数据通信。可见,本专利技术实施例提供的跨数据中心数据同步系统,通过引入通用的RPC协议,从而实现异构数据源下对多语言的支持,从而增强数据同步的灵活性,而且,通过引入基于日志存储的分布式消息队列系统来实现时间序列化(按照不同时间点收集数据)相关数据的有序同步。附图说明图1是本专利技术一个实施例提供的一种跨数据中心数据同步系统结构示意图;图2是本专利技术一个实施例提供的跨数据中心数据同步系统的逻辑处理示意图;图3是本专利技术一个实施例提供的一种跨数据中心数据同步方法流程图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。鉴于现有的跨数据中心数据同步方案所存在的缺陷,本专利技术实施例提出一种高可靠、更加灵活的跨数据中心数据同步系统,采用RPC技术实现对多语言的支持,采用消息队列方式实现数据同步的有序性和可靠性。参见图1,为本专利技术实施例提供的跨数据中心数据同步系统结构示意图。系统包括源数据中心1、目的数据中心2以及数据搬运管理装置3,进一步,源数据中心1包括多个RPC客户端101和多个RPC服务器102,并且,在RPC服务器102设置有源消息队列1021。类似的,目的数据中心2包括RPC客户端201和多个RPC服务器202,并且,在RPC服务器202设置有目的消息队列2021,特别的,目的数据中心2还包括数据搬运装置203,该数据搬运装置203可进一步包括数据消费端2031和数据生产端2032;其中,数据搬运管理装置3是数据同步过程的控制端,通过控制源消息队列1021、目的消息队列2021以及数据搬运装置203,来实现数据同步的启动和执行;数据搬运装置203是完成数据同步的主体,完成数据同步的过程。从逻辑功能上划分,可以将整个系统划分为三个组成部分(子系统):第一部分是RPC子系统,RPC子系统包括RPC客户端和RPC服务器。RPC子系统实现了对多语言的支持,这是因为,可以将RPC客户端和RPC服务端之间的通信协议通过IDL来定义。由此,对于新的语言,通过相应语言的编译器,就可以将IDL文件编译为该语言的代码,从而实现对该语言的支持。其中,IDL(Interfacedescriptionlanguage)是一种接口描述语言,它通过一种中立的方式来描述接口,使得在不同平台上运行的对象和用不同语言编写的程序可以相互通信交流;比如,第一个组件用C++写成,第二个组件用Java写成,可以通过IDL协议接口使第一个组件和第二个组件相互通信。第二部分是消息队列子系统,消息队列子系统包括源消息队列1021和目的消息队列2021。优选方式中,采用基于分布式消息队列系统的消息队列,由此,通过消息队列子系统可实现数据可靠有序的存储,这是因为,分布式消息队列系统通过日志文件来进行数据的持久存储,而日志文件的特点就是可靠和有序。第三部分是数据搬运子系统,数据搬运子系统包括数据搬运装置203和数本文档来自技高网...
跨数据中心数据同步系统及方法

【技术保护点】
一种跨数据中心数据同步系统,用于将源数据中心的数据同步到目的数据中心,其特征在于,所述源数据中心和所述目的数据中心均设置有多个RPC客户端和多个RPC服务器,在所述目的数据中心中设置有数据搬运装置,所述系统还包括数据搬运管理装置;所述数据搬运管理装置,用于管理源消息队列和目的消息队列,以及,控制启动或关闭所述数据搬运装置从源消息队列获取数据;所述数据搬运装置,用于从源消息队列获取数据,并将所获取的数据存入到目的消息队列中。

【技术特征摘要】
1.一种跨数据中心数据同步系统,用于将源数据中心的数据同步到目的数据中心,其特征在于,所述源数据中心和所述目的数据中心均设置有多个RPC客户端和多个RPC服务器,在所述目的数据中心中设置有数据搬运装置,所述系统还包括数据搬运管理装置;所述数据搬运管理装置,用于管理源消息队列和目的消息队列,以及,控制启动或关闭所述数据搬运装置从源消息队列获取数据;所述数据搬运装置,用于从源消息队列获取数据,并将所获取的数据存入到目的消息队列中。2.根据权利要求1所述的系统,其特征在于,所述数据搬运管理装置,还用于设定所述源消息队列和所述目的消息队列的映射对应关系;所述数据搬运装置将所获取的数据存入到源消息队列对应的目的消息队列中。3.根据权利要求1所述的系统,其特征在于,在所述源数据中心的RPC服务器中设置所述源消息队列,在所述目的数据中心的RPC服务器中设置所述目的消息队列。4.根据权利要求1所述的系统,其特征在于,所述源消息队列和所述目的消息队列均是基于日志存储的分布式队列。5.根据权利要求1所述的系统,所述数据搬运装置包括消息生产端和消息消费端,所述消息消费端用于从源消息队列获取数据,所述消息生产端用于将所述消息消费端获取的数据存入到目的消息队列中。6.根据权利要求1-5任一项所述的系统,所述RPC客户端和RPC服务端之间通过IDL定义通信协议,通过IDL文件编译成语言代码,实现在数据中心支持所述语言的数据...

【专利技术属性】
技术研发人员:梁云龙
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1