首页 / 多数据源数据同步方法

多数据源数据同步方法有效专利 发明

技术领域

[0001] 本发明涉及多数据源数据同步方法,属于数据处理技术领域。

相关背景技术

[0002] 传统的分布式数据收集一般直接将数据送入kafka之类的可存储消息队列,当数据量巨大时,消息队列阻塞现象非常严重。

具体实施方式

[0036] 下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0038] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0039] 此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0040] 请参考图1,其示出了本申请各个实施例所涉及的多数据源数据同步系统的拓扑结构图,如图1所示,所述多数据源数据同步系统包括:全球数据系统和设置在每个区域的区域数据系统。
[0041] 所述全球数据系统包括全球消息队列服务器、全球数据服务器和全球数据库。
[0042] 所述区域数据系统包括区域消息队列服务器、区域数据中心、主日志服务器、至少两个从日志服务器、数据服务服务器和中心数据库。其中,从日志服务器可以有至少两个,并且实际数据同步过程中,根据数据量的多少各个从日志服务器可以并行工作,也可以串行工作。
[0043] 实际实现时,根据业务部署的需求,可以在多个区域分别部署区域数据系统,通过各个区域数据系统收集数据信息,并同步至全球数据系统,进而通过全球数据系统对多数据源进行同步数据管理。
[0044] 请参考图2,其示出了本申请一个实施例提供的多数据源数据同步方法的方法流程图,本实施例以改多数据源数据同步方法用于图1所示的应用场景中来举例说明,如图2所示,所述方法包括:
[0045] 步骤201,通过所述主日志服务器定时从各个从日志服务器中获取信息,将获取到的信息打包成小区块,所述从日志服务器中的信息为监听器监听并归档的信息;
[0046] 可选的,请参考图3至图5,其示出了数据收集的收集流程图,如图3至图5所示,各个业务系统执行各自的业务,每个业务系统的步骤包括:
[0047] (1)、监听器监听数据表的变化,并在监听器本地固化形成数据区块队列,将监听到的变化广播至区域消息队列服务器;其中,监听器提供从任意已传输队列索引,或时间节点回溯重传的能力。监听器以数据源信息产生时间作为信息标准时间,初始化时则以数据源产生的最后时间为标准信息的标准时间。
[0048] (2)、从日志服务器消费所述区域消息队列服务器中的消息,并按时间段归档在本地。
[0049] 可选的,各个从日志服务器消费区域消息队列服务器中的消息,将变化归档进入小区块,并固化在本地。
[0050] 主日志服务器定时执行归档任务,并在时间节点到达时,从各个从日志服务器中收集在该时间段内的所有数据,并归档进入新数据区。图中以日志服务器包括日志服务器A、日志服务器B和日志服务器C,且日志服务器A为主日志服务器,日志服务器B和日志服务器C为从日志服务器来举例说明,实际实现时,可能有更多的日志服务器,对此并不做限定。
[0051] 其中,主日志服务器与从日志服务器通过心跳信息进行连接确认,当从日志服务器在预定时间内未与主日志服务器连接,则说明主日志服务器可能出现问题,比如服务器故障或者网络故障等等,此时,从至少两个从日志服务器中选择目标日志服务器,并将该目标日志服务器确定为新的主日志服务器。在确定新的主日志服务器之后,主日志服务器判断新数据区的数据完整性,并对不完整的数据重新进行归档服务。其中,请参考图3,在选定目标日志服务器之后,该目标日志服务器将向各个从日志服务器发出主日志服务器声明,其他从日志服务器在接收到声明之后检测服务器列表,并反馈是否同意,在目标日志服务器收到其他从日志服务器反馈的同意信息时候,最终确定为主日志服务器。
[0052] 其中,各个从日志服务器与主日志服务器采用直连模式,主日志服务器定时从各个从日志服务器中收集所有数据,并将获取到的数据打包成小区块。
[0053] 需要补充说明的是,归档数据在各个日志服务器中均保留有数据副本,并且增加服务器可以提高数据处理速度,而在数据处理速度达到上限时,则需要划分更多的区域数据系统,在此不再赘述。
[0054] 在所述主日志服务器打包小区块之后,判断小区块中的数据的完整性;
[0055] 在数据完整时,所述主日志服务器同步所述小区块至各个从日志服务器,所述从日志服务器接收到同步数据之后,更新本地存储的数据;且所述主日志服务器在所述全球消息队列服务器中广播所述小区块的区块标识。其中,区块标识包括区块ID、区块时间段、特征码和签名。可选的,各个区域数据中心消费其他区域数据中心的广播消息,比对自身对应的小区块的区块标识,若一致,则签名后在所述全球消息队列服务器中广播。请参考图6,其示出了数据分区的示意图。
[0056] 在数据不完整时,重新从所述监听器中获取数据信息,并继续判断数据的完整性。
[0057] 若区域数据中心检测到所述小区块仅经过部分区域数据中心认证而未经过全部区域数据中心认证,则将所述小区块存储至所述区域数据库。这也就是说,区域数据库中保存仅经过部分区域数据中心认证而未经全部区域数据中心认证的信息。
[0058] 可选的,假设各个区域包括欧洲、美洲和亚洲来举例说明,如图7所示,每个区域监听数据源进而得到数据变更日志,根据数据变更日志将数据存储至该区域的中心数据库。
[0059] 步骤202,在各个区域中的小区块满足第一预设条件时,将各个小区块打包为大区块,并广播大区块的区块标识;
[0060] 各个区域数据中心可以定时检测各个区域的小区块是否满足第一预设条件。所述第一预设条件包括所有区域的小区块已经过第一预设数量的区域数据中心认证,且在预设时间段内的各个小区块均存储在所述全球数据库中。第一预设数量可以为区域数据中心的全部数量,也可以为全部数量的预设比例,预设比例可以为70%、90%等等,对此并不做限定。
[0061] 步骤203,在大区块满足第二预设条件时,将所述大区块存储至所述全球数据库。
[0062] 在各个区域数据中心检测到大区块满足第二预设时间时,将大区块移入全局数据区。其中,所述第二预设条件包括所述大区块经过第二预设数量的区域数据中心认证,第二预设数量可以为区域数据中心的全部数量,也可以为全部数量的预设比例,预设比例可以为70%、90%等等,对此并不做限定。
[0063] 各个区域数据中心对大区块进行检测时,分别负责本区域内的数据完整性,即保证本区域内所有数据源都活跃,并上传了该时间段所有数据。若某一数据源故障,或该数据源与区域消息队列服务器之间的链路发生故障,则其他数据源的日志信息会始终滞留于本区域数据中心的新数据区,等待该数据源恢复。而其他数据中心的该时间段数据则始终滞留于区域数据区中,等待故障数据源恢复后,其所属区域数据中心广播区块。任意数据中心均保存有全部全局数据区的内容,并形成链式依赖关系。比如,请参考图8,其示出了日志区块链的示意图。
[0064] 综上所述,通过所述主日志服务器定时从各个从日志服务器中获取信息,将获取到的信息打包成小区块,所述从日志服务器中的信息为监听器监听并归档的信息;在各个区域中的小区块满足第一预设条件时,将各个小区块打包为大区块,并广播大区块的区块标识;所述第一预设条件包括所有区域的小区块已经过第一预设数量的区域数据中心认证,且在预设时间段内的各个小区块均存储在所述全球数据库中;在大区块满足第二预设条件时,将所述大区块存储至所述全球数据库,所述第二预设条件包括所述大区块经过第二预设数量的区域数据中心认证,实现了数据分区,提供了更灵活更方便的数据获取方式,并且上述方法中通过大区块嵌套小区块,数据分区存储使得数据具有不可更改及可靠性高的效果。多类型的数据区,保证了不同的应用可以根据自身的需求灵活选择不同类型的数据日志,例如,需要本地最新的数据可以直接从区域数据中心获取最新数据区数据。而需要全局数据的例如统计,看板等业务,可以获取全局数据区的延迟数据。
[0065] 在上述各个实施例中,上述方法还可以包括如下步骤:
[0066] 第一,接收快照指令,所述快照指令用于请求生成预设时间点的数据快照;
[0067] 第二,在接收到所述快照指令之后,生成所述预设时间点的数据快照。
[0068] 各日志服务可以根据现有日志区块,推演生成预设时间点的数据日志快照。日志快照又可通过推演形成该时间点的数据快照。实际实现时,通过合并日志节点,可以生成更长时间段的日志变更。通过灵活使用日志快照可以有效缩减所存日志数量,从而减少对资源的需求。请参考图9,其示出了数据快照的一种可能的示意图。
[0069] 实际实现时,快照可分为增量快照和全量快照两种,增量快照用于不断新添加内容的数据量较多的数据表,例如交易订单表,交易日志表等。全量快照则用于多变更,少添加,数据量相对较少的数据表,例如产品表,状态表等。
[0070] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0071] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页 第1页 第2页 第3页
相关技术
数据同步相关技术
数据源相关技术
万千发明人的其他相关专利技术