本文提供一种数据同步方法和数据同步装置;其中,所述方法包括:监测主数据是否发生变化;若监测到发生变化,则:根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;将所述差异数据发送给数据同步节点,以使其进行数据同步。本文所述的数据同步方法和数据同步装置支持差异数据传输;客户端无需轮询获取差异数据,服务器可主动推送;支持内建压缩,减少数据传输量,提高并发。
【技术实现步骤摘要】
本专利技术属于数据处理领域,尤其涉及一种数据同步方法及装置。
技术介绍
目前线上主流的数据库,如Redis只能做全量获取,因此当数据库发生变化时,与其同步的其他节点需要重新全量获取更新,造成数据量大,占用大量网络资源;并且现有的数据库发生变化后,不会主动将数据库推送给与其同步的其他节点,而是需要每个节点轮询获取。
技术实现思路
有鉴于此,为了解决现有技术中存在数据库更新后需要全量获取,并且不支持推送功能的问题,本专利技术的目的是提出一种数据同步方法。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。在一些可选的实施例中,所述数据同步方法,包括:监测主数据是否发生变化;若监测到发生变化,则:根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;将所述差异数据发送给数据同步节点,以使其进行数据同步。本专利技术另一个目的是提供一种数据同步装置;在一些可选的实施例中,所述数据同步装置,包括:监测单元,用于监测主数据是否发生变化;若监测到发生变化,则:差异数据确定单元,用于根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;同步单元,用于将所述差异数据发送给数据同步节点,以使其进行数据同步。采用上述实施例,可达到以下效果:1、支持差异数据传输;2、客户端无需轮询获取差异数据,服务器可主动推送;3、支持内建压缩,减少数据传输量,提高并发。为了上述以及相关的目的,一个或多个实施例包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明某些示例性方面,并且其指示的仅仅是各个实施例的原则可以利用的各种方式中的一些方式。其它的益处和新颖性特征将随着下面的详细说明结合附图考虑而变得明显,所公开的实施例是要包括所有这些方面以及它们的等同。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1示出了本专利技术实施例的一种数据同步方法的流程示意图;图2示出了本专利技术实施例的一种数据同步装置的功能结构框图。具体实施方式以下描述和附图充分地示出本专利技术的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、 过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本专利技术的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本专利技术的这些实施方案可以被单独地或总地用术语“专利技术”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的专利技术,不是要自动地限制该应用的范围为任何单个专利技术或专利技术构思。图1示出了本专利技术实施例一种数据同步方法的流程示意图;如图1所示,所述方法包括:步骤S101,监测主数据是否发生变化;若监测到发生变化,则:步骤S102,根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;步骤S103,将所述差异数据发送给数据同步节点,以使其进行数据同步;所述方法可以应用于大并发网络多节点数据同步服务器,现有技术中主流的数据库如Redis的数据发生变化时,在数据同步时需要全量传输,无法实现差异传输,并且服务器不支持主动推送,需要客户端轮询获取数据;通过上述方法,本节点主动监测主数据变化,并且通过判断版本号和序列号两个标识确定数据是发生了本质改变还是发生了增量改变,从而确定差异数据为全量数据还是新增数据,然后主动将差异数据传输给数据同步节点,整个过程简洁高效,减少带宽占用,高并发;在一些可选的实施例中,所述主数据的修改方式包括替换和新增两种;若对所述主数据进行所述替换的操作,则:所述版本号,或,所述版本号和所述序列号改变;若对所述主数据进行所述新增的操作,则:所述版本号不变,所述序列号增值;在一些可选的实施例中,所述监测主数据是否发生变化的操作,包括:监测所述主数据的版本号和序列号是否改变;若二者均未改变,则所述主数据未改变;若改变,则触发确定所述差异数据的操作;在一些可选的实施例中,所述根据所述主数据的版本号和序列号,确定数据变化前后的差异数据的操作,包括:判断所述版本号是否改变;若是,则所述差异数据为所述主数据的全量;若否,则:判断所述序列号是否增值;若是,则所述差异数据为所述主数据的新增数据,并根据所述序列号的增值,在所述主数据中确定待传输的新增数据;在一些可选的实施例中,所述将所述差异数据发送给数据同步节点的操作,包括:根据记录的所述数据同步节点的信息,将所述主数据全量或所述主数据的新增数据压缩并发送到所述数据同步节点;在所述发送数据的过程中,还携带发生变化的所述版本号和/或所述序列号。以下实施例给出了具体的实施方案,所述数据同步方法应用于大并发网络多节点数据同步服务器,在大并发网络中,本服务器可以向多个网络节点提供数据同步服务,当主数据发生变化时,可以快速向与本端同步的网络节点推送相应的差异数据;具体的设计方案如下:首先,可以对本节点的主数据设置版本号version和序列号sequence两个参数标识;其中,version标识主数据变化前后的兼容性,例如:主数据是AB,version=1;若主数据变成ABC,那么主数据只是发生了长度的增加,则version不变;若主数据变成了AA,那么主数据发生了本质变化,则version变成2。sequence代表数据的长度,若主数据发生了长度的新增,则该值增加相应的数量,若主数据发生了本质的变化,则该值记录的是变化后的数据的长度,例如:主数据是AB,sequence=2,若主数据变成了ABCD,则seuqence=4,若主数据变成了AA,则sequence不变;其次,当主数据发生了变化,修改数据可为两种,一种是替换replace操作,一种是新增append操作,不准许在数据中间插入。每次append后,sequence为增加数据后的数据长度,version不变化;如果是replace后version变化,sequence为数据长度;第三,通过判断version和sequence两个参数的变化,可以确定最佳的同步数据的方案,即确定差异数据;若sequence为增加,version不变,则仅将新增对部分数据进行同步;若version发生变化,则需要将主数据整体进行同步;第四,根据记录的所述数据同步节点的信息,将确定的差异数据主动推送给所述节点,并在传输过程中加入压缩标志,对数据进行压缩,减少带宽占用。图2示出了本专利技术实施例的一种数据同步装置的功能结构框图;所述数据同步装置200,包括:监测单元201,用于监测主数据是否发生变化;若监测到发生变化,则:差异数据确定单元201,用于根据所述主数据的版本号和序列号,确定数据变本文档来自技高网...
【技术保护点】
一种数据同步方法,其特征在于,包括:监测主数据是否发生变化;若监测到发生变化,则:根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;将所述差异数据发送给数据同步节点,以使其进行数据同步。
【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:监测主数据是否发生变化;若监测到发生变化,则:根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;将所述差异数据发送给数据同步节点,以使其进行数据同步。2.如权利要求1所述的方法,其特征在于,所述主数据的修改方式包括替换和新增两种;若对所述主数据进行所述替换的操作,则:所述版本号,或,所述版本号和所述序列号改变;若对所述主数据进行所述新增的操作,则:所述版本号不变,所述序列号增值。3.如权利要求2所述的方法,其特征在于,所述监测主数据是否发生变化的操作,包括:监测所述主数据的版本号和序列号是否改变;若二者均未改变,则所述主数据未改变;若改变,则触发确定所述差异数据的操作。4.如权利要求2所述的方法,其特征在于,所述根据所述主数据的版本号和序列号,确定数据变化前后的差异数据的操作,包括:判断所述版本号是否改变;若是,则所述差异数据为所述主数据的全量;若否,则:判断所述序列号是否增值;若是,则所述差异数据为所述主数据的新增数据,并根据所述序列号的增值,在所述主数据中确定待传输的新增数据。5.如权利要求4所述的方法,其特征在于,所述将所述差异数据发送给数据同步节点的操作,包括:根据记录的所述数据同步节点的信息,将所述主数据全量或所述主数据的新增数据压缩并发送到所述数据同步节点;在所述发送数据的过程中,还携带发生变化的所述版本号和/或所述序列号。6.一种数据同步...
【专利技术属性】
技术研发人员:王喜旺,唐周标,
申请(专利权)人:北京金山安全管理系统技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。