CN104639585B - 一种实时数据传输***及其数据同步方法 - Google Patents
一种实时数据传输***及其数据同步方法 Download PDFInfo
- Publication number
- CN104639585B CN104639585B CN201310566157.6A CN201310566157A CN104639585B CN 104639585 B CN104639585 B CN 104639585B CN 201310566157 A CN201310566157 A CN 201310566157A CN 104639585 B CN104639585 B CN 104639585B
- Authority
- CN
- China
- Prior art keywords
- data
- server
- module
- import
- transmission
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明适用于数据处理领域,提供了一种实时数据传输***及其数据同步方法,所述方法包括:数据导入服务器在接收到数据同步指令时,通过传输代理模块向数据适配器发送数据请求;数据适配器从数据源读取数据,并将读取的数据通过传输代理模块发送至数据导入服务器;数据导入服务器从传输代理模块接收数据,并将接收的数据导入在线服务模块。本发明由于统一通过数据适配器从数据源读取数据,通过传输代理模块将数据适配器读取的数据转发至数据导入服务器,因此,在需要扩容时,只需要增加数据适配器和/或传输代理模块,使得实时数据传输***具有较好的扩展性,从而可以实现海量数据的同步。
Description
技术领域
本发明属于数据处理领域,尤其涉及一种实时数据传输***及其数据同步方法。
背景技术
实时数据传输***(也称为实时数据传输平台)具有高性能、实时性、顺序性、高可靠性、高可用性、可扩展性等特点,因此广泛应用于互联网应用领域,如日志收集、数据监控、广告反馈、量子统计、数据库同步等。
现有的实时数据传输***包括TimeTunnel等。TimeTunnel一般采用3台服务器。在将TimeTunnel应用于淘宝网来处理数据时,3台服务器每天处理的数据量约为2.3T,峰值约为每秒50Mb的流入流量,130Mb的流出流量。
现有的TimeTunnel由于扩展性受到限制,从而难以支持海量数据的处理。且由于TimeTunnel每台服务器本身的峰值流出流量为350Mb,而在将TimeTunnel应用于淘宝网时,每台服务器每秒的流出流量约为130Mb,因此,服务器带宽利用率偏低。另外TimeTunnel不支持格式化数据的修复,因此数据传输的可靠性较低。
发明内容
本发明实施例提供一种实时数据传输***及其数据同步方法,旨在解决现有的数据传输***由于可扩展性受到限制而导致难以对海量数据进行处理的问题。
一方面,提供一种实时数据传输***,包括第一互联网数据中心和第二互联网数据中心,所述第一互联网数据中心包括数据源和至少一个数据适配器,所述第二互联网数据中心包括至少一个传输代理模块,至少一个数据导入服务器,以及与数据导入服务器连接的在线服务模块;
其中所述数据适配器从所述数据源中读取数据,并将读取的数据通过所述传输代理模块转发至所述数据导入服务器,所述数据导入服务器将接收到的数据导入所述在线服务模块。
另一方面,提供一种实时数据传输***中的数据同步方法,所述方法包括:
数据导入服务器在接收到数据同步指令时,通过传输代理模块向数据适配器发送数据请求;
数据适配器从数据源读取数据,并将读取的数据通过传输代理模块发送至数据导入服务器;
数据导入服务器从传输代理模块接收数据,并将接收的数据导入在线服务模块。
在本发明实施例中,统一通过数据适配器从数据源读取数据,通过传输代理模块将数据适配器读取的数据转发至数据导入服务器,因此,在需要扩容时,只需要增加数据适配器和/或传输代理模块,使得实时数据传输***具有较好的扩展性,从而可以实现海量数据的同步。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的实时数据传输***的结构框图;
图2是本发明实施例提供的数据导入服务器的具体结构图;
图3是本发明另一实施例提供的实时数据传输***的结构框图;
图4是本发明实施例提供的实时数据传输***的数据同步方法的实现流程图;
图5是本发明另一实施例提供的实时数据传输***的数据同步方法的实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,第一互联网数据中心的数据适配器从数据源中读取数据,并将读取到的数据通过第二互联网数据中心的传输代理发送至第二互联网数据中心的数据导入服务器,通过数据导入服务器将数据导入至第二互联网数据中心的各在线服务模块,从而可以将数据源中的数据同步到第二互联网数据中心的各在线服务模块,且当实时数据传输***要处理的数据量增加时,只需要增加第一互联网数据中心的数据适配器和/或第二互联网数据中心的传输代理即可,从而使得实时数据传输***可灵活扩展,进而可方便处理海量数据。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的实时数据传输***的结构框图。
该实时数据传输***包括第一互联网数据中心(Internet Data Center,IDC)1和第二互联网数据中心2。其中第一互联网数据中心1为作为数据源的互联网数据中心,该第一互联网数据中心1中存储有该实时数据传输***中的所有原始数据。第二互联网数据中心2是需要从第一互联网数据中心1的数据源获取数据的互联网数据中心。
如当将该实时数据传输***应用于搜索引擎时,则该第一互联网数据中心1为存储有全量网页以及索引数据的互联网数据中心,第二互联网数据中心2为存储有索引数据,且需要从第一互联网数据中心获取全量网页的互联网数据中心。其中全量网页是指搜索引擎根据搜索关键词搜索并下载到的所有网页。
其中第一互联网数据中心1包括数据源11,以及与数据源11连接的至少一个数据适配器(DataAdapter)12。其中数据源11与数据适配器12之间的连接为物理连接或者逻辑连接。当为物理连接时,可以为有线或者无线连接。
其中数据源11中存储有该实时数据传输***中的所有原始数据。如当该实时数据传输***应用于搜索引擎时,该数据源11中存储有全量网页和索引数据等。
数据适配器12的数量可以根据实时数据传输***需要处理的数据量增加或者减少。具体的,当实时数据传输***需要处理的数据量增加时,只需要增加数据适配器的个数,并将增加的数据适配器的信息保存至数据导入服务器22。这样,使得该实时数据传输***具有较好的平行扩展性,支持平滑快速扩容。
该数据适配器12的数量还可以根据传输使用的总带宽的大小增加或者减少。具体的,可以根据传输使用的总带宽的大小控制数据适配器12的使用个数,且将数据适配器的可使用信息保存至数据导入服务器22。这样通过控制数据适配器的使用数量,就可以控制传输使用的总带宽。
该数据适配器12的数量还可以根据时间段进行调整。具体的,可以对不同时间段内需要处理的数据量进行统计分析,并根据统计结果对不同时间段内可以使用的数据适配器的数量进行设置。
该数据适配器12根据数据同步指令或者数据请求从数据源11中读取数据。
在本实施例中,当第一互联网数据中心1主动将其数据源中的数据同步到第二互联网数据中心2中的各在线服务模块时,则数据适配器12根据数据同步指令从数据源11中读取数据;当第一互联网数据中心1在第二互联网数据中心2的主动请求下将其数据源中的数据同步到第二互联网数据中心2中的各在线服务模块时,则数据适配器12根据第二互联网数据中心2发送的数据请求从数据源11中读取数据。
在本发明另一实施例中,该数据适配器12在从数据源11中读取到数据后,计算读取到的数据的差错校验码,以便后续可以根据差错校验码对读取到的数据进行差错校验。其中该差错校验码可以为循环冗余校验码(Cyclic Redundancy Check,CRC)等。
在本发明另一实施例中,该数据适配器12对从数据源11中读取到数据进行压缩处理。由于数据适配器12对读取到的数据进行了压缩处理,从而减少了需要通过网络传输的数据量,进而节约了带宽资源。
第二互联网数据中心2包括至少一个传输代理模块(Tproxy)21,与传输代理模块21连接的至少一个数据导入服务器(FastBuild)22,以及与数据导入服务器22连接的在线服务模块23。
其中传输代理模块21的数量可以依据该实时数据传输***需要处理的数据量增加或者减少。
其中传输代理模块21提供外网代理功能,其通过网络与第一互联网数据中心1中的数据适配器12连接,使得第二互联网数据中心2通过网络可以与第一互联网数据中心1之间进行通信。
具体的,该传输代理模块21将数据导入服务器22发送的数据请求通过网络转发给数据适配器12,并通过网络接收数据适配器12从数据源11读取到的数据,并将接收到的数据转发给数据导入服务器22。
在本发明另一实施例中,当数据适配器12为从数据源11读取到的数据计算出了差错校验码时,则该传输代理模块21通过网络接收数据适配器12从数据源11读取到的数据以及该数据的差错校验码,并将接收到的数据以及该数据的差错校验码转发给数据导入服务器22。
数据导入服务器22接收传输代理模块21转发的数据适配器12从数据源11中读取到的数据,并将将传输代理模块22转发的数据导入在线服务模块23。
在本实施例中,当第一互联网数据中心1主动将其数据源11中的数据同步到第二互联网数据中心2中的各在线服务模块23时,该数据导入服务器22直接将传输代理模块22转发的数据导入在线服务模块23;
当第一互联网数据中心1在第二互联网数据中心2的主动请求下将其数据源中的数据同步到第二互联网数据中心2中的各在线服务模块时,则数据导入服务器22在接收到数据同步指令时,通过传输代理模块21向数据适配器12发送数据请求,请求数据适配器12从数据源中读取数据,同时从传输代理模块21接收数据适配器12从数据源11中读取到的数据,并将接收到的数据导入在线服务模块23。
在本实施例中,数据导入服务器22接收到的数据同步指令可以是运营支撑***(Operation Support System,OSS)3发送给数据导入服务器22的。其中运营支撑***是一个综合的业务运营和管理平台。运营支撑***3发送给数据导入服务器22的数据同步指令中包括源数据文件路径和目标在线服务模块标识。其中源数据文件路径用于指示数据导入服务器22该数据同步指令所需要请求的数据源中文件的存储路径,以便可以从数据源中读取到该数据同步指令请求的数据。目标在线服务模块标识是指该数据同步指令所请求的数据需要同步到在线服务模块的标识,以便指示数据导入服务器22在获取到请求的数据后,可以将该数据导入该目标在线服务模块标识对应的在线服务模块中,以便将数据源中的数据同步到对应的在线服务模块中。
该数据导入服务器22中存储有可用传输代理模块列表和可用数据适配器列表。数据导入服务器22在接收到数据同步指令时,从可用传输代理模块列表中选择一个传输代理模块,并从可用数据适配器列表中选择一个数据适配器,数据导入服务器22向选择的传输代理模块发送数据请求,该数据请求包含选择的数据适配器的IP信息,以告知传输代理模块将数据请求转发给选择的数据适配器。传输代理模块根据数据请求中数据适配器的IP信息将数据请求发送至选择的数据适配器,以通过选择的数据适配器从数据源中读取请求的数据,并通过传输代理模块将读取的数据转发给数据导入服务器22。
在本发明另一实施例中,该数据导入服务器22接收传输代理模块21转发的数据适配器12从数据源11中读取到的数据以及该数据的差错校验码,采用该数据的差错校验码对接收的数据进行差错校验,将差错校验成功的数据导入在线服务模块23。
在本实施例中,数据导入服务器22在接收到传输代理模块21转发的数据和该数据的差错校验码时,采用差错校验码对接收的数据进行差错校验,并将差错校验成功的数据导入在线服务模块,从而保证了导入至在线服务模块中的数据的准确性。
在本发明另一实施例中,数据导入服务器22在采用该数据的差错校验码对接收的数据进行差错校验后,若差错校验失败,则记录校验失败信息。其中该校验失败信息包括文件级失败信息和/或记录级失败信息。文件级失败信息是指整个文件同步失败时所记录的信息。该文件级失败信息可以为该文件的文件路径等。记录级失败信息是指文件中的部分记录同步失败时所记录的信息。该记录级失败信息包括记录的起始地址和长度信息。
在本实施例中,数据导入服务器在对数据的差错校验失败时,记录校验失败信息,从而为后续的数据修复提供了依据。
在本发明另一实施例中,数据导入服务器22在一个同步任务完成后,根据记录的校验失败信息对同步失败的数据进行修复。其具体过程如下:
若校验失败信息为文件级失败信息,则数据导入服务器22通过传输代理模块21向数据适配器12发送文件获取请求,该文件获取请求包含该文件的文件路径,且数据导入服务器22在接收到传输代理模块21转发的数据适配器12从数据源中读取到的请求的文件时,将该文件导入在线服务模块23;
若校验失败信息为记录级失败信息,在数据导入服务器22通过传输代理模块21向数据适配器12发送记录获取请求,该记录获取请求包含记录的起始地址和长度信息,且数据导入服务器22在接收到传输代理模块21转发的数据适配器12从数据源中读取到的请求的记录时,将该记录导入在线服务模块23。
在本实施例中,通过根据记录的校验失败信息对同步失败的数据进行修复,从而保证了数据同步的高可靠性,同时通过区分文件级失败信息和记录级失败信息,从而极大的减少了修复的开销。
在本发明另一实施例中,该数据导入服务器22在接收传输代理模块21转发的数据,并将转发的数据导入在线服务模块23时,采用了异步缓存方式。
具体的,请参阅图2,为本发明实施例提供的数据导入服务器22的具体结构图。该数据导入服务器22包括数据传输子模块221,缓存222,以及数据导入子模块223。其中缓存222可以存储文件的多条记录。
其中数据传输子模块221在缓存还未写满时,通过传输代理模块21从数据适配器12获取数据,并将获取的数据缓存至缓存222中。
具体的,数据传输子模块221在缓存还未写满时,采用并发写入方式通过传输代理模块21从数据适配器12获取数据,并以记录为单位将获取到的数据写入缓存222中。
数据导入子模块223在发现缓存222中存在数据时,将缓存中的数据导入在线服务模块23中。
具体的,数据导入子模块223在发现缓存22中存在数据时,以记录为单位并发地将缓存222中的数据导入至在线服务模块23。
在本实施例中,数据导入服务器通过采用异步缓存的方式来实现数据的接收和导入,从而使数据传输效率可以达到单机网卡带宽的上限,从而充分的利用了单机网卡的带宽,提高了数据传输的效率。
图3示出了本发明另一实施例提供的实时数据传输***的结构框图。该实时数据传输***与图1所示的实时数据传输***的不同之处仅在于第二互联网数据中心2还包括校验服务器(CheckServer)24。
该校验服务器24在接收到数据校验指令时,分别从数据源11以及在线服务模块23中获取数据,并将获取到的数据进行对比,以对导入至在线服务模块23中的数据进行校验。其中若从数据源11获取到的数据与从在线服务模块23中获取到的数据相同,则校验成功,否则,校验失败。这样,可以保证同步到在线服务模块中的数据与数据源中的数据保持一致。
在本实施例中,数据校验指令是运营支撑***发送至校验服务器24的。
在本发明另一实施例中,该校验服务器24从数据源11中抽取部分数据,并从在线服务模块23中抽取对应的数据,将抽取到的数据进行对比,以对导入至在线服务模块23中的数据进行校验。由于仅抽取部分数据进行对比,从而避免了由于数据量过大而使数据校验的开销过大。
值得注意的是,上述***,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
图4示出了本发明实施例提供的实时数据传输***中的数据同步方法的实现流程,其中实时数据传输***如图1至3所示,该方法详述如下:
S101,数据导入服务器在接收到数据同步指令时,通过传输代理模块向数据适配器发送数据请求。
该数据导入服务器中存储有可用传输代理模块列表和可用数据适配器列表。该数据导入服务器定时或者在接收到列表拉取指令时,获取实时数据传输***中可用的传输代理模块信息和可用的数据适配器信息,并根据获取的可用的传输代理模块信息和可用的数据适配器信息更新其存储的可用传输代理模块列表和可用数据适配器列表,以定时更新或者实时更新其存储的可用传输代理模块列表和可用数据适配器列表。
具体的,通过运营支撑***向数据导入服务器发送数据同步指令。该数据同步指令中包括源数据文件路径和目标在线服务模块标识。
其中数据导入服务器在接收到数据同步指令时,通过传输代理模块向数据适配器发送数据请求的步骤具体包括:
A1、数据导入服务器在接收到数据同步指令时,从可用传输代理模块列表中选择一个传输代理模块,从可用数据适配器列表中选择一个数据适配器。
A2、数据导入服务器向选择的传输代理模块发送数据请求,该数据请求中包含选择的数据适配器的IP信息,以便告知传输代理模块将数据请求转发至选择的数据适配器。且该数据请求指定了需要请求的数据标识。该数据标识可以为文件标识、文件路径等。
A3、传输代理模块根据数据请求中的数据适配器的IP信息将数据请求转发至选择的数据适配器。
S102,数据适配器从数据源读取数据,并将读取的数据通过传输代理模块发送至数据导入服务器。
具体的,数据适配器从传输代理模块接收到数据请求后,根据该数据请求从数据源读取数据,并将读取的数据通过传输代理模块发送至数据导入服务器。
在本发明另一实施例中,数据适配器从传输代理模块接收到数据请求后,从数据源读取数据,并计算读取的数据的差错校验码,将读取的数据以及该数据的差错校验码通过输代理模块发送至数据导入服务器。其中差错校验码可以为CRC校验码等。
在本发明另一实施例中,数据适配器将从数据源读取到的数据进行压缩处理后通过传输代理模块发送至数据导入服务器,或者数据适配器将从数据源读取到的数据和该数据的差错校验码进行压缩处理后通过传输代理模块发送至数据导入服务器。
S103,数据导入服务器从传输代理模块接收数据,并将接收的数据导入在线服务模块。
在本实施例中,一般数据同步指令需要同步的数据量较大,而数据传输由于受带宽的影响,一次数据请求所能请求的数据量相对于数据同步指令需要同步的数据量要小,因此,在根据数据同步指令向选择的传输代理模块发送数据请求时,一般可分成多次数据请求来进行,在传输完一次数据请求所请求的数据后,再发送下一次数据请求。其中在传输完一次数据请求所请求的数据是指将所请求的数据源中的数据导入在线服务模块后。
如数据同步指令需要同步的数据一般可以为一个文件,对于该文件分成若干次数据请求,在将一次数据请求所请求的数据源中的数据导入至在线服务模块后,再发送下一次数据请求,直到将该数据同步指令需要同步的文件同步到在线服务模块后,一次同步任务即完成。
在本实施例中,统一通过数据适配器从数据源读取数据,通过传输代理模块将数据适配器读取的数据转发至数据导入服务器,因此,在需要扩容时,只需要增加数据适配器和/或传输代理模块,使得实时数据传输***具有较好的扩展性,从而可以实现海量数据的同步。
在本发明另一实施例中,当数据适配器通过传输代理模块将从数据源读取到的数据以及该数据的差错校验码发送至数据导入服务器时,数据导入服务器从传输代理模块接收数据,并将接收的数据导入在线服务模块的步骤具体为:
数据导入服务器从传输代理模块接收数据以及该数据的差错校验码,并采用差错校验码对接收的数据进行差错校验,将差错校验成功的数据导入在线服务模块,从而保证导入至在线服务模块中的数据的准确性。
在本发明另一实施例中,数据导入服务器在采用该数据的差错校验码对接收的数据进行差错校验后,若差错校验失败,则记录校验失败信息。其中该校验失败信息包括文件级失败信息和/或记录级失败信息。
在本发明另一实施例中,该方法还包括:
数据导入服务器在一个同步任务完成后,根据记录的校验失败信息对同步失败的数据进行修复。其中一个同步任务完成是指数据同步指令指定的数据同步完成。其中数据导入服务器在一个同步任务完成后,根据记录的校验失败信息对同步失败的数据进行修复的具体过程如下:
若校验失败信息为文件级失败信息,则数据导入服务器通过传输代理模块向数据适配器发送文件获取请求,该文件获取请求包含该文件的文件路径,且数据导入服务器在接收到传输代理模块转发的数据适配器从数据源中读取到的请求的文件时,将该文件导入在线服务模块;
若校验失败信息为记录级失败信息,在数据导入服务器通过传输代理模块向数据适配器发送记录获取请求,该记录获取请求包含记录的起始地址和长度信息,且数据导入服务器在接收到传输代理模块转发的数据适配器从数据源中读取到的请求的记录时,将该记录导入在线服务模块。
在本发明另一实施例中,数据导入服务器从传输代理模块接收数据,并将接收的数据导入在线服务模块的步骤具体为:
B1、数据导入服务器的数据传输子模块在缓存还未写满时,通过传输代理模块从数据适配器获取数据,并将获取的数据缓存至缓存中。
具体的,数据传输子模块在缓存还未写满时,采用并发写入方式通过传输代理模块从数据适配器获取数据,并以记录为单位将获取到的数据写入缓存中。
B2、数据导入服务器的数据导入子模块在发现缓存中存在数据时,将缓存中的数据导入在线服务模块中。
具体的,数据导入子模块在发现缓存中存在数据时,以记录为单位并发地将缓存中的数据导入至在线服务模块。
其中步骤B1和B2为异步执行的步骤,无先后顺序。
图5示出了本发明另一实施例提供的实时数据传输***中的数据同步方法的实现流程,其中实时数据传输***如图1至3所示,其中S201至S203与图4中的S101至S103相同,在此不再赘述,该方法在S203之后还包括:
S204,校验服务器在接收到数据校验指令时,分别从数据源以及在线服务模块中获取数据,并将获取到的数据进行对比,以对导入至在线服务模块中的数据进行校验。
具体的,通过运营支撑***向数据导入服务器发送数据校验指令。
其中若从数据源获取到的数据与从在线服务模块中获取到的对应数据相同,则校验成功,否则,校验失败。这样,可以保证同步到在线服务模块中的数据与数据源中的数据保持一致。
在本发明另一实施例中,该校验服务器分别从数据源和在线服务模块中抽取部分数据,并将抽取到的数据进行对比,以对导入至在线服务模块中的数据进行校验。
在本发明另一实施例中,该方法还包括下述步骤:
当在实时数据传输***中增加或者减少数据适配器的数量时,将增加或者减少的数据适配器的信息存储至数据导入服务器,数据导入服务器根据增加或者减少的数据适配器的信息更新可用数据适配器列表。
在本实施例中,当实时数据传输***需要扩容,如由于需要处理的数据量增长需要扩容,或者由于在线机器数量增加需要扩容时,可以在实时数据传输***中增加数据适配器的数量,此时只需要将增加的数据适配器的信息存储至数据导入服务器,数据导入服务器根据增加或者减少的数据适配器的信息更新可用数据适配器列表,即可实现扩容。
在本发明另一实施例中,该方法还包括下述步骤:
当在实时数据传输***中增加或者减少传输代理模块的数量时,将增加或者减少的传输代理模块的信息存储至数据导入服务器,数据导入服务器根据增加或者减少的数据适配器的信息更新可用传输代理模块列表。
在本发明另一实施例中,该方法还包括下述步骤:
获取实时数据传输***的可用总带宽,根据可用总带宽控制可用数据适配器的数量,并将可用数据适配器的信息存储至数据导入服务器,数据导入服务器根据增加或者减少的数据适配器的信息更新可用数据适配器列表。
在本发明另一实施例中,该方法还包括下述步骤:
获取当前时间,根据当前时间所属的时间段控制可用数据适配器的数量,并将可用数据适配器的信息存储至数据导入服务器,数据导入服务器根据增加或者减少的数据适配器的信息更新可用数据适配器列表。
在本实施例中,预先设置时间段以及该时间段可用数据适配器的数量,这样在获取到当前时间后,即可根据当前时间所属的时间段,将可用数据适配器的数量控制在预先设置的该时间段可用数据适配器的数量。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
在本实施例中,统一通过数据适配器从数据源读取数据,通过传输代理模块将数据适配器读取的数据转发至数据导入服务器,因此,在需要扩容时,只需要增加数据适配器和/或传输代理模块,使得实时数据传输***具有较好的扩展性,从而可以实现海量数据的同步。通过对每次接收的数据进行差错校验,并将差错校验成功的数据导入在线服务模块,从而保证导入至在线服务模块中的数据的准确性。通过根据记录的校验失败信息对同步失败的数据进行修复,从而保证了数据同步的高可靠性,同时通过区分文件级失败信息和记录级失败信息,从而极大的减少了修复的开销。数据导入服务器通过采用异步缓存的方式来实现数据的接收和导入,从而使数据传输效率可以达到单机网卡带宽的上限,从而充分的利用了单机网卡的带宽,提高了数据传输的效率。通过分别从数据源以及在线服务模块中获取数据,并将获取到的数据进行对比,以对导入至在线服务模块中的数据进行校验,从容可以保证同步到在线服务模块中的数据与数据源中的数据保持一致。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种实时数据传输***,包括第一互联网数据中心和第二互联网数据中心,其特征在于,所述第一互联网数据中心包括数据源和至少一个数据适配器,所述第二互联网数据中心包括至少一个传输代理模块,至少一个数据导入服务器,以及与数据导入服务器连接的在线服务模块;
其中所述数据适配器从所述数据源中读取数据,并将读取的数据通过所述传输代理模块转发至所述数据导入服务器,所述数据导入服务器将接收到的数据导入所述在线服务模块。
2.如权利要求1所述的实时数据传输***,其特征在于,所述数据适配器还用于在从所述数据源读取到数据后,计算读取到的数据的差错校验码,并将读取到的数据以及所述数据的差错校验码通过所述传输代理模块发送至所述数据导入服务器。
3.如权利要求2所述的实时数据传输***,其特征在于,所述数据导入服务器还用于在接收到数据以及所述数据的差错校验码时,采用所述数据的差错校验码对接收到的数据进行验证,并将差错校验成功的数据导入所述在线服务模块。
4.如权利要求3所述的实时数据传输***,其特征在于,所述数据导入服务器还用于采用所述数据的差错校验码对接收到的数据进行验证后,若验证失败,记录校验失败信息,其中所述校验失败信息包括文件级失败信息和/或记录级失败信息。
5.如权利要求4所述的实时数据传输***,其特征在于,所述数据导入服务器还用于在一个同步任务完成后,根据所述校验失败信息对同步失败的数据进行修复。
6.如权利要求1至5任一权利要求所述的实时数据传输***,其特征在于,所述数据导入服务器包括:
缓存,用于存储文件的多条记录;
数据传输子模块,用于在所述缓存还未写满时,通过所述传输代理模块从所述数据适配器获取数据,并将获取的数据缓存至所述缓存;
数据导入子模块,用于在所述缓存中存在数据时,将所述缓存中的数据导入所述在线服务模块中。
7.如权利要求6所述的实时数据传输***,其特征在于,所述数据传输子模块采用并发写入方式将获取的数据缓存至所述缓存,所述数据导入子模块采用并发读取方式将所述缓存中的数据导入所述在线服务模块中。
8.如权利要求1至5任一权利要求所述的实时数据传输***,其特征在于,所述***还包括:
校验服务器,用于在接收到数据校验指令时,分别从所述数据源以及所述在线服务模块中获取数据,并将获取到的数据进行对比,以对导入至所述在线服务模块中的数据进行校验。
9.一种实时数据传输***中的数据同步方法,其特征在于,所述方法包括:
至少一个数据导入服务器在接收到数据同步指令时,通过至少一个传输代理模块向至少一个数据适配器发送数据请求;
至少一个数据适配器从数据源读取数据,并将读取的数据通过至少一个传输代理模块发送至至少一个数据导入服务器;
至少一个数据导入服务器从至少一个传输代理模块接收数据,并将接收的数据导入在线服务模块。
10.如权利要求9所述的数据同步方法,其特征在于,所述数据导入服务器在接收到数据同步指令时,通过传输代理模块向数据适配器发送数据请求包括:
数据导入服务器在接收到数据同步指令时,从预先存储的可用传输代理模块列表中选择一个传输代理模块,从预先存储的可用数据适配器列表中选择一个数据适配器;
数据导入服务器向选择的传输代理模块发送数据请求,所述数据请求中包含选择的数据适配器的IP信息;
传输代理模块根据数据请求中的数据适配器的IP信息将数据请求转发至选择的数据适配器。
11.如权利要求9所述的数据同步方法,其特征在于,在所述数据适配器从数据源读取数据之后,所述方法还包括:
数据适配器计算读取的数据的差错校验码,并将所述数据的差错校验码发送至数据导入服务器。
12.如权利要求9所述的数据同步方法,其特征在于,所述数据导入服务器从传输代理模块接收数据,并将接收的数据导入在线服务模块具体包括:
数据导入服务器从传输代理模块接收数据以及所述数据的差错校验码,并采用差错校验码对接收的数据进行差错校验,将差错校验成功的数据导入在线服务模块。
13.如权利要求12所述的数据同步方法,其特征在于,在所述数据导入服务器采用差错校验码对接收的数据进行差错校验之后,所述方法还包括:
若差错校验失败,记录校验失败信息,所述校验失败信息包括文件级失败信息和/或记录级失败信息。
14.如权利要求13所述的数据同步方法,其特征在于,所述方法还包括:
数据导入服务器在一个同步任务完成后,根据所述校验失败信息对同步失败的数据进行修复。
15.如权利要求14所述的数据同步方法,其特征在于,所述根据所述校验失败信息对同步失败的数据进行修复包括:
若所述校验失败信息为文件级失败信息,则数据导入服务器通过传输代理模块向数据适配器发送文件获取请求,所述文件获取请求包含所述文件的文件路径,且数据导入服务器在接收到传输代理模块转发的数据适配器从数据源中读取到的请求的文件时,将所述文件导入在线服务模块;
若校验失败信息为记录级失败信息,在数据导入服务器通过传输代理模块向数据适配器发送记录获取请求,所述记录获取请求包含记录的起始地址和长度信息,且数据导入服务器在接收到传输代理模块转发的数据适配器从数据源中读取到的请求的记录时,将所述记录导入在线服务模块。
16.如权利要求9至15任一权利要求所述的数据同步方法,其特征在于,所述数据导入服务器从传输代理模块接收数据,并将接收的数据导入在线服务模块,包括:
数据导入服务器的数据传输子模块在缓存还未写满时,通过传输代理模块从数据适配器获取数据,并将获取的数据缓存至缓存中;
数据导入服务器的数据导入子模块在发现缓存中存在数据时,将缓存中的数据导入在线服务模块中。
17.如权利要求9至15任一权利要求所述的数据同步方法,其特征在于,所述方法还包括:
校验服务器在接收到数据校验指令时,分别从数据源以及在线服务模块中获取数据,并将获取到的数据进行对比,以对导入至在线服务模块中的数据进行校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310566157.6A CN104639585B (zh) | 2013-11-13 | 2013-11-13 | 一种实时数据传输***及其数据同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310566157.6A CN104639585B (zh) | 2013-11-13 | 2013-11-13 | 一种实时数据传输***及其数据同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104639585A CN104639585A (zh) | 2015-05-20 |
CN104639585B true CN104639585B (zh) | 2019-01-08 |
Family
ID=53217895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310566157.6A Active CN104639585B (zh) | 2013-11-13 | 2013-11-13 | 一种实时数据传输***及其数据同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104639585B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106454767A (zh) * | 2015-08-05 | 2017-02-22 | 中兴通讯股份有限公司 | 一种业务数据同步方法、装置及*** |
CN105550325B (zh) * | 2015-12-16 | 2019-05-31 | 北京奇虎科技有限公司 | 一种数据管理方法和装置 |
CN105608132B (zh) * | 2015-12-16 | 2019-04-30 | 北京奇虎科技有限公司 | 一种提供自定义生成图表的服务的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197694A (zh) * | 2006-12-04 | 2008-06-11 | 中兴通讯股份有限公司 | 一种通讯***日志集中统计、处理***及其方法 |
CN101448020A (zh) * | 2008-12-29 | 2009-06-03 | 深圳市迅雷网络技术有限公司 | 一种数据源返回方法及装置 |
CN100531055C (zh) * | 2006-04-10 | 2009-08-19 | 华为技术有限公司 | 数据同步***及其方法 |
CN102629929A (zh) * | 2012-04-18 | 2012-08-08 | 华为技术有限公司 | 一种获取数据的方法、***及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI439873B (zh) * | 2011-08-08 | 2014-06-01 | Dimerco Express Taiwan Corp | Data synchronization method |
-
2013
- 2013-11-13 CN CN201310566157.6A patent/CN104639585B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100531055C (zh) * | 2006-04-10 | 2009-08-19 | 华为技术有限公司 | 数据同步***及其方法 |
CN101197694A (zh) * | 2006-12-04 | 2008-06-11 | 中兴通讯股份有限公司 | 一种通讯***日志集中统计、处理***及其方法 |
CN101448020A (zh) * | 2008-12-29 | 2009-06-03 | 深圳市迅雷网络技术有限公司 | 一种数据源返回方法及装置 |
CN102629929A (zh) * | 2012-04-18 | 2012-08-08 | 华为技术有限公司 | 一种获取数据的方法、***及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104639585A (zh) | 2015-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104978258B (zh) | 软件自动化测试方法及*** | |
CN104468843A (zh) | 一种文件上传方法及装置 | |
CN105447046A (zh) | 一种分布式***数据一致性处理方法、装置和*** | |
CN106709069A (zh) | 高可靠性的大数据日志采集与传输方法 | |
CN104104717A (zh) | 投放渠道数据统计方法及装置 | |
CN106874334A (zh) | 一种数据处理方法及装置、资讯处理*** | |
CN104618432B (zh) | 一种事件发送与接收的处理方法和处理*** | |
CN110011952A (zh) | 一种数据传输的方法、服务集群及客户端 | |
CN109639768A (zh) | 一种分布式分块文件传输方法及*** | |
CN104639585B (zh) | 一种实时数据传输***及其数据同步方法 | |
CN110263579A (zh) | 一种数据处理方法、***及相关设备 | |
CN110493302A (zh) | 一种文件传输方法、设备及计算机可读存储介质 | |
CN109583896A (zh) | 交易验证方法、区块链节点及存储介质 | |
CN103634269B (zh) | 单点登录***及方法 | |
CN107395559A (zh) | 基于redis的数据处理方法及设备 | |
CN113326165A (zh) | 基于区块链的数据处理方法、设备及计算机可读存储介质 | |
CN111432009B (zh) | 一种区块链数据的同步方法、装置及电子设备、存储介质 | |
CN104899312B (zh) | 一种多层分类数据体系的数据更新方法 | |
CN106203179B (zh) | 一种对文件的完整性校验***及方法 | |
CN105184559B (zh) | 一种支付***及方法 | |
CN106888264A (zh) | 一种数据交换方法和装置 | |
CN110417892A (zh) | 基于报文解析的数据复制链路优化方法及装置 | |
US20150088958A1 (en) | Information Processing System and Distributed Processing Method | |
CN103957119B (zh) | 一种采用mib文件对网络设备进行管理的方法及浏览器 | |
CN103944779B (zh) | 一种wap业务性能监测方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210922 Address after: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2, 518044, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |