一种数据同步方法、装置、设备、系统及可读存储介质与流程

文档序号:14737328发布日期:2018-06-19 20:46阅读:104来源:国知局
一种数据同步方法、装置、设备、系统及可读存储介质与流程

本发明涉及数据库系统技术领域,特别是涉及一种数据同步方法、装置、设备、系统及可读存储介质。



背景技术:

分布式系统以其良好的稳定性、容错性以及伸缩性使得更容易被构建稳定、高效的应用。

但是,分布式系统中的数据同步确是一项挑战。因为在分布式系统中,存放在各个节点的本地数据库中的数据,需要保持一致。以防止对外提供的服务出现不一致的情况。而提供的服务不一致本身就是一大隐患。例如,当分布式系统应用在金融领域时,当数据不同步时,可能会出现反复扣款等情况。

综上所述,如何有效地解决分布式系统中的数据同步等问题,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种数据同步方法、装置、设备、系统及可读存储介质,以实现分布式系统中的数据同步。

为解决上述技术问题,本发明提供如下技术方案:

一种数据同步方法,包括:

获取并存储主节点对应的数据状态信息;

当达到预设同步触发条件时,基于所述数据状态信息确定同步数据操作信息;

将所述同步数据操作信息发送给从节点,以便所述从节点进行数据同步。

优选地,所述数据状态信息包括数据版本号和数据操作记录。

优选地,基于所述数据状态信息确定同步数据操作信息,包括:

当所述预设同步触发条件为增量同步触发条件时,将携带有所述数据状态信息的新增数据操作记录对应的操作指令信息确定为同步数据操作信息;

其中,所述增量同步触发条件为监测到所述数据操作记录的变化项数大于预设项数阈值。

优选地,基于所述数据状态信息确定同步数据操作信息,包括:

当所述预设同步触发条件为全量同步触发条件时,将携带有所述数据状态信息的数据版本号的全量复制指令信息确定为同步数据操作信息;

其中,所述全量同步触发条件为监测到所述数据版本号发生变化。

一种数据同步装置,包括:

数据状态信息获取模块,用于获取并存储主节点对应的数据状态信息;

同步数据操作信息确定模块,用于当达到预设同步触发条件时,基于所述数据状态信息确定同步数据操作信息;

同步数据操作信息发送模块,用于将所述同步数据操作信息发送给从节点,以便所述从节点进行数据同步。

优选地,所述数据状态信息包括数据版本号和数据操作记录。

优选地,所述同步数据操作信息确定模块,具体用于

当所述预设同步触发条件为增量同步触发条件时,将携带有所述数据状态信息的新增数据操作记录对应的操作指令信息确定为同步数据操作信息;其中,所述增量同步触发条件为监测到所述数据操作记录的变化项数大于预设项数阈值。

一种数据同步系统,包括:

主节点、从节点和如上述的数据同步设备,其中,所述主节点和所述从节点分别与所述数据同步设备具有通信连接,所述数据同步设备具体可以为zookeeper。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据同步方法的步骤。

应用本发明实施例所提供的方法,获取并存储主节点对应的数据状态信息;当达到预设同步触发条件时,基于数据状态信息确定同步数据操作信息;将同步数据操作信息发送给从节点,以便从节点进行数据同步。本发明通过获取并存储对主节点对应的数据状态信息进行监测。当达到预设同步触发条件时,可以确定进行数据同步的同步数据操作信息。然后将同步数据操作信息发送给从节点,以便从节点进行数据同步。最终可以达到各个节点之间的数据同步的目的。应用在分布式系统中时,可提升分布式系统对外提供服务的稳定性,减少对外服务不一致情况的发生。

相应的,本发明实施例还提供了一种数据同步装置、设备、系统及计算机可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

本发明提供的数据同步方法可以应用到zookeeper(分布式应用程序协调服务,可提供目录状结构的数据节点)中,以实现分布式系统中的数据同步。本发明所提供的方法,获取并存储主节点对应的数据状态信息;当达到预设同步触发条件时,基于数据状态信息确定同步数据操作信息;将同步数据操作信息发送给从节点,以便从节点进行数据同步。本发明通过获取并存储对主节点对应的数据状态信息进行监测。当达到预设同步触发条件时,可以确定进行数据同步的同步数据操作信息。然后将同步数据操作信息发送给从节点,以便从节点进行数据同步。最终可以达到各个节点之间的数据同步的目的。应用在分布式系统中时,可提升分布式系统对外提供服务的稳定性,减少对外服务不一致情况的发生。

在实际应用中,可以通过利用zookeeper保存全局数据库版本号和操作记录,通过全量和增量相结合的同步方式,保证所有节点数据库数据同步。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种数据同步方法的实施流程图;

图2为本发明实施例中一种zookeeper节点目录结构示意图;

图3为本发明实施例中一种数据同步装置的结构示意图;

图4为本发明实施例中一种数据同步系统的结构示意图;

图5为本发明实施例中一种数据同步设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例中一种数据同步方法的流程图,该方法包括以下步骤:

S101、获取并存储主节点对应的数据状态信息。

在本实施例中,zookeeper可获取并存储的主节点的数据状态信息。具体的,可以在主节点对本地存储的数据进行增加、删除或修改改时,将具体的数据操作内容和对象存入zookeeper中。即对主节点对应的数据状态信息进行监测。实时获取主节点对应的最新数据状态信息。

其中,数据状态信息包括数据版本号和数据操作记录。数据状态信息存储在zookeeper中时,可参见图2所示的节点目录结构。即在zookeeper中记录主节点的最新版本号,以及每条数据操作记录操作详情和对应编号,如编号为1011的数据操作,其具体操作内容为INSERT数据;编号为1012的数据操作,其具体内容为DELETE数据;编号为1510的数据操作,其具体内容为MODIFY数据。

S102、当达到预设同步触发条件时,基于数据状态信息确定同步数据操作信息。

在本实施例中,可以预先设置一个或多个同步触发条件。预设同步触发条件可以为时间周期的触发条件,也可以为当发生某事件为同步触发条件。在本发明的一个具体实施例中,预设同步触发条件为监测到数据版本号发生变化。在本发明的另一个具体实施例中,预设同步触发条件为监测到数据操作记录的变化项数大于预设项数阈值。如,数据操作记录增加的条数超过了预设项数阈值。

当到达预设同步触发条件时,可以基于数据状态信息确定进行同步数据操作信息。数据同步操作信息可大致分为全量同步信息和增量同步信息。其中,全量同步信息可以携带指示从节点直接拷贝主节点的所有数据库文件的指令的信息。增量同步可以为携带指示从节点对本地的目标数据进行修改或删除的操作信息。

在本发明的其他实施例中,步骤S102基于数据状态信息确定同步数据操作信息,具体如下:

在本发明的一个具体实施例中,当预设同步触发条件为增量同步触发条件时,将携带有数据状态信息的新增数据操作记录对应的操作指令信息确定为同步数据操作信息;其中,增量同步触发条件为监测到数据操作记录的变化项数大于预设项数阈值。即,当预设同步触发条件为增量同步触发条件时,基于数据状态信息可以确定进行数据增量同步对应的同步数据操作信息。具体的,可以预先设置一个或多个增量同步触发条件。其中,增量同步触发条件可以为检测到本地数据版本号与主节点的版本号不同,或,检测到本地数据操作记录与主节点的数据操作记录存在预设数量的差异,或,检测到本地数据操作记录与主节点的数据操作记录的差异可通过简单且较短时间可完成如删除某数据文件。然后,确定进行数据增量同步对应的同步数据操作信息。可将查找出的本地数据操作记录与主节点的数据操作记录的差异操作信息直接作为同步数据操作信息。

在本发明的另一个具体实施例中,当预设同步触发条件为全量同步触发条件时,将携带有数据状态信息的数据版本号的全量复制指令信息确定为同步数据操作信息,其中,全量同步触发条件为监测到数据版本号发生变化。即,当预设同步触发条件为全量同步触发条件时,基于数据状态信息确定进行数据全量同步对应的同步数据操作信息,其中同步数据操作信息可以为携带有数据版本号的全量复制指令信息。例如,可以预先设置全量同步触发条件为:当待同步的从节点为新增数据节点时,或,当检测到的本地数据操作记录与主节点的数据操作记录的差异大于预设的阈值时,可以进行全量同步。全量操作信息具体可以为携带将主节点的数据文件全部复制至从节点中的指令信息。

S103、将同步数据操作信息发送给从节点,以便从节点进行数据同步。

确定同步数据操作信息之后,zookeeper可以将同步数据操作信息发送给从节点,以便从节点进行数据同步。具体的,从节点可以基于同步数据操作想确定进行同步所需操作的目标数据,以及对目标数据执行具体同步操作。同步操作可大致分为增量同步和全量同步,可由接收到的同步数据操作信息所确定。其中,增量同步对本地数据进行相应操作,例如,当同步数据操作信息为携带对数据A进行加1的操作的信息,从节点即对本地数据A执行加1的操作;当同步数据操信息为携带将增加数据B时,即从节点读取主节点的数据B,并在获得该数据B后,存入本节点中的相应位置。全量同步,可为直接复制主节点的所有数据,例如,从节点为当新接入的数据节点时,可直接将主节点的数据全部复制至本地节点中,以实现数据同步。

在本发明的一个实施例中,在从节点对同步数据操作信息对应的目标数据执行相应的数据操作之后,还可以更新本地数据状态信息。避免因本地数据状态信息未及时更新导致触发操作相同的数据。

应用本发明实施例所提供的方法,获取并存储主节点对应的数据状态信息;当达到预设同步触发条件时,基于数据状态信息确定同步数据操作信息;将同步数据操作信息发送给从节点,以便从节点进行数据同步。本发明通过获取并存储对主节点对应的数据状态信息进行监测。当达到预设同步触发条件时,可以确定进行数据同步的同步数据操作信息。然后将同步数据操作信息发送给从节点,以便从节点进行数据同步。最终可以达到各个节点之间的数据同步的目的。应用在分布式系统中时,可提升分布式系统对外提供服务的稳定性,减少对外服务不一致情况的发生。

相应于上面的方法实施例,本发明实施例还提供了一种数据同步装置,下文描述的数据同步装置与上文描述的数据同步方法可相互对应参照。

参见图3所示,该装置包括以下模块:

数据状态信息获取模块201,用于获取并存储主节点对应的数据状态信息;

同步数据操作信息确定模块202,用于当达到预设同步触发条件时,基于数据状态信息确定同步数据操作信息;

同步数据操作信息发送模块203,用于将同步数据操作信息发送给从节点,以便从节点进行数据同步。

应用本发明实施例所提供的装置,获取并存储主节点对应的数据状态信息;当达到预设同步触发条件时,基于数据状态信息确定同步数据操作信息;将同步数据操作信息发送给从节点,以便从节点进行数据同步。本发明通过获取并存储对主节点对应的数据状态信息进行监测。当达到预设同步触发条件时,可以确定进行数据同步的同步数据操作信息。然后将同步数据操作信息发送给从节点,以便从节点进行数据同步。最终可以达到各个节点之间的数据同步的目的。应用在分布式系统中时,可提升分布式系统对外提供服务的稳定性,减少对外服务不一致情况的发生。

在本发明的一种具体实施方式中,数据状态信息包括数据版本号和数据操作记录。

在本发明的一种具体实施方式中,同步数据操作信息确定模块202,具体用于当预设同步触发条件为增量同步触发条件时,将携带有数据状态信息的新增数据操作记录对应的操作指令信息确定为同步数据操作信息;其中,增量同步触发条件为监测到数据操作记录的变化项数大于预设项数阈值。

在本发明的一种具体实施方式中,同步数据操作信息确定模块202,具体用于当预设同步触发条件为全量同步触发条件时,将携带有数据状态信息的数据版本号的全量复制指令信息确定为同步数据操作信息;其中,全量同步触发条件为监测到数据版本号发生变化。

相应于上面的方法实施例,本发明实施例还提供了一种数据同步系统,下文描述的一种数据同步系统与上文描述的一种数据同步方法可相互对应参照。

请参见图4,该系统包括:

主节点401、从节点403和如上述实施例描述的数据同步设备402,其中,主节点401和从节点403分别与数据同步设备402具有通信连接,数据同步设备402具体可以为zookeeper。

相应于上面的方法实施例,本发明实施例还提供了一种数据同步设备,下文描述的一种数据同步设备与上文描述的一种数据同步方法可相互对应参照。

参见图5所示,该数据同步设备包括:

存储器D1,用于存储计算机程序;

处理器D2,用于执行计算机程序时实现上述方法实施例的数据同步方法的步骤。

相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,下文描述的一种计算机可读存储介质与上文描述的一种数据同步方法可相互对应参照。

一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据同步方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1