CN105812492B - 一种数据同步方法及系统 - Google Patents
一种数据同步方法及系统 Download PDFInfo
- Publication number
- CN105812492B CN105812492B CN201610323913.6A CN201610323913A CN105812492B CN 105812492 B CN105812492 B CN 105812492B CN 201610323913 A CN201610323913 A CN 201610323913A CN 105812492 B CN105812492 B CN 105812492B
- Authority
- CN
- China
- Prior art keywords
- data
- synchronous
- synchronized
- ring
- transfer instruction
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L2012/421—Interconnected ring systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种数据同步方法及系统,所述方法包括:当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在待同步数据;如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步;如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机。由于所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输,因此,同步数据的方向不局限于单、双向,而是每个节点机既可以同步其它节点传输的数据,也可以发布需要同步的数据给同步组内的其它节点机,进而可以提高数据同步的实时性,满足业务需要。
Description
技术领域
本发明属于数据处理技术领域,尤其涉及一种数据同步方法及系统。
背景技术
现有的数据同步技术,主要包括数据库同步技术、文件同步技术以及异步消息同步技术。
数据库同步技术是通过读取数据库日志的方式实现数据同步功能,当源数据库数据发生变化后,目标数据库通过读取源数据库的日志,将变化的数据及时同步到目标数据库;文件同步技术是通过文件方式同步各应用间的共享数据;异步消息同步技术采用的是基于消息中间件的订阅发布机制,源数据系统以主题方式发布数据,需要同步源数据的系统使用订阅主题方式,以接收异步消息方式来同步本地数据。
然而,上述几种数据同步技术在进行数据同步时都存在比较长的延时,数据同步的实时性较差。
发明内容
有鉴于此,本发明公开了一种内存级数据的同步方法及系统,以保证数据在内存级的同步,进而满足业务需要。
本发明公开了一种数据同步方法,包括:
当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在待同步数据;所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输;
如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步;
如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机。
优选的,所述判断是否存在待同步数据,包括:
判断是否存在需要向所述数据同步环中发布的待同步数据;
和/或
根据所述数据传输指令判断是否存在需要从所述数据同步环中接收的待同步数据。
优选的,所述如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步,包括:
如果存在需要向所述数据同步环中发布的待同步数据,则将需要向所述数据同步环中发布的待同步数据广播到所述数据同步环中,并在发送给所述数据同步环中的下一个节点机的所述数据传输指令中携带发布到所述数据同步环中的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述数据传输指令中的标识信息判断是否存在需要从所述数据同步环中接收的待同步数据;
和/或
如果存在需要从所述数据同步环中接收的待同步数据,则在向所述数据同步环中的下一个节点机发送的所述数据传输指令中携带重传请求,所述重传请求中包含有需要从所述数据同步环中接收的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述重传请求中的标识信息将需要从所述数据同步环中接收的待同步数据广播到所述数据同步环中。
优选的,当接收到来自数据同步环中的上一个节点机的数据传输指令时,还包括:
判断所述数据传输指令中是否携带有重传请求;如果所述数据传输指令中携带有重传请求,执行数据重传操作;所述数据重传操作包括:解析所述重传请求中的标识信息,将与所述重传请求中的标识信息相对应的待同步数据广播到所述数据同步环中,并清除所述数据传输指令中的重传请求。
优选的,当所述数据传输指令中携带有重传请求时,还包括:
记录接收到所述重传请求的次数;
在所述次数大于预设阈值且每次接收到的所述重传请求中的标识信息均相同时,停止执行所述数据重传操作。
本发明另一方面公开了一种数据同步系统,包括:
判断模块,用于当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在待同步数据;所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输;
第一同步模块,用于如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步;
第二同步模块,用于如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机。
优选的,所述判断模块包括:
第一判断单元,用于判断是否存在需要向所述数据同步环中发布的待同步数据;
和/或
第二判断单元,用于根据所述数据传输指令判断是否存在需要从所述数据同步环中接收的待同步数据。
优选的,所述第一同步模块,包括:
第一同步单元,用于如果存在需要向所述数据同步环中发布的待同步数据,则将需要向所述数据同步环中发布的待同步数据广播到所述数据同步环中,并在发送给所述数据同步环中的下一个节点机的所述数据传输指令中携带发布到所述数据同步环中的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述数据传输指令中的标识信息判断是否存在需要从所述数据同步环中接收的待同步数据;
和/或
第二同步单元,用于如果存在需要从所述数据同步环中接收的待同步数据,则在向所述数据同步环中的下一个节点机发送的所述数据传输指令中携带重传请求,所述重传请求中包含有需要从所述数据同步环中接收的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述重传请求中的标识信息将需要从所述数据同步环中接收的待同步数据广播到所述数据同步环中。
优选的,所述判断模块还包括:
第三判断单元,用于判断所述数据传输指令中是否携带有重传请求;如果所述数据传输指令中携带有重传请求,执行数据重传操作;所述数据重传操作包括:解析所述重传请求中的标识信息,将与所述重传请求中的标识信息相对应的待同步数据广播到所述数据同步环中,并清除所述数据传输指令中的重传请求。
优选的,第三判断单元中还包括:
记录单元,用于记录接收到所述重传请求的次数;
执行单元,用于在所述次数大于预设阈值且每次接收到的所述重传请求中的标识信息均相同时,停止执行所述数据重传操作。
由上述方案可知,本发明公开了一种数据同步方法及系统,所述方法包括:当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在待同步数据;如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步;如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机。由于所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输,因此,同步数据的方向不局限于单、双向,而是每个节点机既可以同步其它节点传输的数据,也可以发布需要同步的数据给同步组内的其它节点机,进而可以提高数据同步的实时性,满足业务需要。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种数据同步方法的流程图;
图2是本发明实施例公开的一种数据同步方法的另一种流程图;
图3是本发明公开的一种数据同步方法实际使用中的流程示意图;
图4是本发明实施例公开的一种数据同步系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先说明一下本发明的应用场景,本发明的主要应用在分布式环境中,在分布式应用环境中,存在大量的数据需要在各个系统中共享使用的情况,现有的数据同步技术,在一些数据同步实时性要求高的应用场景下不能满足要求,比如在秒级内必须保证业务连续性的高可用场景下。因此,本发明公开了一种数据同步方法来提高数据同步的实时性,满足业务需要。
图1是本发明实施例公开的一种数据同步方法的流程图。
参见图1,本发明公开的一种数据同步方法包括:
S101、当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在待同步数据;所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输;
本发明实施例中,在进行数据同步的步骤之前,预先设置数据同步环。数据同步环是由多个节点机组成的节点机组,将多个节点机在逻辑上连接成环形结构,设置成数据同步环,数据同步环中的各个节点机按照预设的逻辑顺序依次相连接。
设置完成数据同步环后,数据同步环中的节点机使用选举算法选举产生一个节点机作为数据传输指令节点机,所述数据传输指令节点机用于管理、发放、回收和监控数据传输指令,数据传输指令是一个特殊结构的帧,其中包含有多个可以由用户进行自定义的字段,通过这些字段可以了解数据同步过程中各个节点机的同步状态等信息。
本发明实施例中,由于各个节点机组成环形结构,因此,每一个节点机即可以作为同步数据的发布者,也可以作为同步数据的接收者。不管作为哪一种情况,都是以接收到数据同步指令为触发条件进行后续步骤的。
当接收到由上一个节点机发送的数据传输指令时,判断是否存储待同步数据,具体包括:判断是否存在需要向所述数据同步环中发布的待同步数据;和/或根据所述数据传输指令判断是否存在需要从所述数据同步环中接收的待同步数据。也就是说,以接收数据同步指令为触发,判断需要发布待同步数据和/或需要与数据同步环中所发布的待同步数据执行同步操作。
可以理解的是,判断是否存在需要向所述数据同步环中发布的待同步数据和/或根据所述数据传输指令判断是否存在需要从所述数据同步环中接收的待同步数据时,可以单独执行一种判断,也可以同时执行两种判断。
本发明实施例中,数据传输指令中,包括有表示数据传输指令“忙”和“闲”状态的标识,当接收到数据传输指令时,先判断此标识处于何种状态,若处于闲的状态,则判断是否存储需要向所述数据同步环中发布的待同步数据,若为忙的状态,则判断是否存在需要从所述数据同步环中接收的待同步数据。设置数据传输指令状态标识的目的是使得某一节点机在发布待同步数据时,数据同步环中的其它节点机不在进行待同步数据的发布,保证系统稳定运行。
在实际使用中,每个节点机都具有同步服务,本发明的技术方案中,在同步服务中设置有发送和接收消息的队列,任意一个节点机的同步服务在接收到数据传输指令后,判断发送消息队列和/或接收消息队列中是否存在有待同步数据。
在实际使用中,虽然在逻辑上数据同步环中的各个节点机处于环的连接模块,但是,在物理链路上仍使用以太网或其它硬件连接方式进行连接。
S102、如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步;
本发明实施例中,在判断出存在待同步数据时,也就是意味着节点机需要进行与数据同步环的数据同步,因此,根据数据传输指令执行数据同步操作,完成与数据同步环的数据同步。
S103、如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机。
如果不存在同步数据,也就说明在数据同步环中不存储待同步数据,数据同步环中的各个节点机不需要进行数据同步,因此,将数据传输指令按照预设顺序依次传输即可。
由上述方案可知,本发明公开了一种数据同步方法,所述方法包括:当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在待同步数据;如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步;如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机。由于所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输,因此,同步数据的方向不局限于单、双向,而是每个节点机既可以同步其它节点传输的数据,也可以发布需要同步的数据给同步组内的其它节点机,进而可以提高数据同步的实时性,满足业务需要。
图2是本发明实施例公开的一种数据同步方法的另一种流程图。
S201、当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在需要向所述数据同步环中发布的待同步数据和/或根据所述数据传输指令判断是否存在需要从所述数据同步环中接收的待同步数据;所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输;
S202、如果存在需要向所述数据同步环中发布的待同步数据,则将需要向所述数据同步环中发布的待同步数据广播到所述数据同步环中,并在发送给所述数据同步环中的下一个节点机的所述数据传输指令中携带发布到所述数据同步环中的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述数据传输指令中的标识信息判断是否存在需要从所述数据同步环中接收的待同步数据;
和/或
如果存在需要从所述数据同步环中接收的待同步数据,则在向所述数据同步环中的下一个节点机发送的所述数据传输指令中携带重传请求,所述重传请求中包含有需要从所述数据同步环中接收的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述重传请求中的标识信息将需要从所述数据同步环中接收的待同步数据广播到所述数据同步环中。
本申请实施例中,步骤S201与上述实施例S101相同,在此不再赘述。
本申请实施例中,如果存在需要向所述数据同步环中发布的待同步数据,使用广播的方式将待同步数据发布到所述数据同步环中,并将待同步数据保存在接收消息队列中,数据同步环中的其它节点机将待同步数据保存在自己的接收消息队列中。
并且,在发布待同步数据时,还同时携带有待同步数据对应的标识信息,标识信息是为了使得数据同步环中的节点机判断自己是否已经接收有待同步数据。
当需要从所述数据同步环中接收的待同步数据时,为了保证数据的完整性,向所述数据同步环中的下一个节点机发送的所述数据传输指令中携带重传请求。重传请求中包含有需要从所述数据同步环中接收的待同步数据的标识信息。需要从所述数据同步环中接收的待同步数据是指需要从所述数据同步环中接收的、但自身的数据接收队列中没有保存的待同步数据。
优选的,判断所述数据传输指令中是否携带有重传请求;如果所述数据传输指令中携带有重传请求,执行数据重传操作;所述数据重传操作包括:解析所述重传请求中的标识信息,将与所述重传请求中的标识信息相对应的待同步数据广播到所述数据同步环中,并清除所述数据传输指令中的重传请求。
本发明实施例中,如果数据传输指令中携带重传请求,表明上一个节点机并未完全接收到待同步数据,因此,解析重传请求中的标识信息,将与所述重传请求中的标识信息相对应的待同步数据广播到所述数据同步环中,使得上一个节点机完全接收待同步数据。
当然,在解析重传请求中的标识信息后,还进一步的判断自己的接收消息队列中,是否接收了与所述重传请求中的标识信息相对应的待同步数据,如果自己也未接收,则直接将数据同步指令发送到下一节点机。直到某一节点机清除重传请求。
需要说明的是,当数据传输指令中携带有重传请求时,还同时将自身节点机对应的标识信息携带到数据传输指令中,并在下一次接收到数据传输指令时,判断自身是否完全接收了待同步数据,若是,则清除数据传输指令中自身对应的标识信息。当数据传输指令中不存在有节点机对应的标识信息时,则表明待同步数据已经被所有节点机所同步完成。
S203、如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机。
优选的,当所述数据传输指令中携带有重传请求时,还包括:
记录接收到所述重传请求的次数;
在所述次数大于预设阈值且每次接收到的所述重传请求中的标识信息均相同时,停止执行所述数据重传操作。
本发明实施例中,如果数据同步环中的某一节点机出现故障,则需要将其屏蔽出数据同步环,以保证其它节点机同步数据的正常运行。
若上一节点机出现故障时,通常会多次要求重传未完全接收的待同步数据,因此,会反复发送重传请求,而且重传请求中的标识信息也都相同。
因此,在所述数据传输指令中携带有重传请求时,记录接收到重传请求的次数。并且如果重传请求的次数大于预设的阈值,而且每次接收的重传请求中的标识信息均相同,则停止数据重传操作,并根据预设的方法将上一个节点机屏蔽出数据同步环,以保证数据同步环中的所有节点机都是正常状态。
需要说明的是,本发明实施例中的所有方法都调用数据接口完成,数据同步环中的各个节点机只要调用统一的数据同步接口,就能将数据同步到数据同步环中的所有节点中,不用管同步的细节及同步的结果,节点机的同步服务保证数据同步的效果,并在特殊情况下将数据同步不一致的节点机屏蔽出逻辑环。
因此,本发明实施例提供的一种数据同步方法中,同步数据的方向不局限于单、双向,而是每个节点机既可以同步其它节点传输的数据,也可以发布需要同步的数据给同步组内的其它节点机,并且可以做到在任一时刻所有数据同步环中的节点机保持内存级数据同步,即一个或若干个节点崩溃,其他节点可瞬时无缝切换,最大限度保证业务连续性。
下面举一个实际使用中的实例来说明某节点机出现故障时的情况。
参见图3所示,假设节点C、节点D完整接收到了节点A广播的数据1、数据2,节点B只接收到了数据1。
节点A同步服务将数据传输指令传递给节点B的同步服务,数据传输指令记录了节点A同步服务中接收队列中消息数据的最大顺序号(MAX SEQ)为2。
节点B同步服务通过比较MAX SEQ,发现自己没有收到数据2。
节点B修改数据传输指令中的ARU为自身节点的编号,表示该节点机遗漏数据,并将RTR重传请求列表置为未收到的数据序号2;
节点C接收到传输口令时,向逻辑环广播数据2,并清除传输口令的重传请求列表记录,把传输口令传输给节点D。
当节点机B再次接收数据传输指令时,如果自身同步了数据2,则将数据传输指令中的ARU清除。
图4是本申请提供的一种数据同步系统的结构示意图。
参见图4所示,本发明公开的一种数据同步系统,包括:
判断模块401,用于当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在待同步数据;所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输;
第一同步模块402,用于如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步;
第二同步模块403,用于如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机。
优选的,所述判断模块包括:
第一判断单元,用于判断是否存在需要向所述数据同步环中发布的待同步数据;
和/或
第二判断单元,用于根据所述数据传输指令判断是否存在需要从所述数据同步环中接收的待同步数据。
优选的,所述第一同步模块,包括:
第一同步单元,用于如果存在需要向所述数据同步环中发布的待同步数据,则将需要向所述数据同步环中发布的待同步数据广播到所述数据同步环中,并在发送给所述数据同步环中的下一个节点机的所述数据传输指令中携带发布到所述数据同步环中的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述数据传输指令中的标识信息判断是否存在需要从所述数据同步环中接收的待同步数据;
和/或
第二同步单元,用于如果存在需要从所述数据同步环中接收的待同步数据,则在向所述数据同步环中的下一个节点机发送的所述数据传输指令中携带重传请求,所述重传请求中包含有需要从所述数据同步环中接收的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述重传请求中的标识信息将需要从所述数据同步环中接收的待同步数据广播到所述数据同步环中。
优选的,所述判断模块还包括:
第三判断单元,用于判断所述数据传输指令中是否携带有重传请求;如果所述数据传输指令中携带有重传请求,执行数据重传操作;所述数据重传操作包括:解析所述重传请求中的标识信息,将与所述重传请求中的标识信息相对应的待同步数据广播到所述数据同步环中,并清除所述数据传输指令中的重传请求。
优选的,第三判断单元中还包括:
记录单元,用于记录接收到所述重传请求的次数;
执行单元,用于在所述次数大于预设阈值且每次接收到的所述重传请求中的标识信息均相同时,停止执行所述数据重传操作。
由上述方案可知,本发明公开了一种数据同步系统,所述系统中,当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在待同步数据;如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步;如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机。由于所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输,因此,使用本发明提供的一种数据同步系统,同步数据的方向不局限于单、双向,而是每个节点机既可以同步其它节点传输的数据,也可以发布需要同步的数据给同步组内的其它节点机,进而可以提高数据同步的实时性,满足业务需要。
需要说明的是,本实施例的一种数据同步系统可以采用上述方法实施例中的一种数据同步方法,用于实现上述方法实施例中的全部技术方案,其各个模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实施例中的相关描述,此处不再赘述。
为了描述的方便,描述以上系统时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种数据同步方法,其特征在于,包括:
当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在待同步数据;所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输;
如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步;
如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机;
所述判断是否存在待同步数据,包括:
判断是否存在需要向所述数据同步环中发布的待同步数据;
和/或
根据所述数据传输指令判断是否存在需要从所述数据同步环中接收的待同步数据。
2.根据权利要求1所述的数据同步方法,其特征在于,所述如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步,包括:
如果存在需要向所述数据同步环中发布的待同步数据,则将需要向所述数据同步环中发布的待同步数据广播到所述数据同步环中,并在发送给所述数据同步环中的下一个节点机的所述数据传输指令中携带发布到所述数据同步环中的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述数据传输指令中的标识信息判断是否存在需要从所述数据同步环中接收的待同步数据;
和/或
如果存在需要从所述数据同步环中接收的待同步数据,则在向所述数据同步环中的下一个节点机发送的所述数据传输指令中携带重传请求,所述重传请求中包含有需要从所述数据同步环中接收的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述重传请求中的标识信息将需要从所述数据同步环中接收的待同步数据广播到所述数据同步环中。
3.根据权利要求2所述的数据同步方法,其特征在于,当接收到来自数据同步环中的上一个节点机的数据传输指令时,还包括:
判断所述数据传输指令中是否携带有重传请求;如果所述数据传输指令中携带有重传请求,执行数据重传操作;所述数据重传操作包括:解析所述重传请求中的标识信息,将与所述重传请求中的标识信息相对应的待同步数据广播到所述数据同步环中,并清除所述数据传输指令中的重传请求。
4.根据权利要求3所述的数据同步方法,其特征在于,当所述数据传输指令中携带有重传请求时,还包括:
记录接收到所述重传请求的次数;
在所述次数大于预设阈值且每次接收到的所述重传请求中的标识信息均相同时,停止执行所述数据重传操作。
5.一种数据同步系统,其特征在于,包括:
判断模块,用于当接收到来自数据同步环中的上一个节点机的数据传输指令时,判断是否存在待同步数据;所述数据同步环是由多个需要维持数据同步的节点机组成的,且所述数据传输指令按照预设顺序在所述数据同步环中的所有节点机之间依次传输;
第一同步模块,用于如果存在待同步数据,根据所述数据传输指令完成与所述数据同步环的数据同步;
第二同步模块,用于如果不存在待同步数据,则将所述数据传输指令发送给所述数据同步环中的下一个节点机;
所述判断模块包括:
第一判断单元,用于判断是否存在需要向所述数据同步环中发布的待同步数据;
和/或
第二判断单元,用于根据所述数据传输指令判断是否存在需要从所述数据同步环中接收的待同步数据。
6.根据权利要求5所述的数据同步系统,其特征在于,所述第一同步模块,包括:
第一同步单元,用于如果存在需要向所述数据同步环中发布的待同步数据,则将需要向所述数据同步环中发布的待同步数据广播到所述数据同步环中,并在发送给所述数据同步环中的下一个节点机的所述数据传输指令中携带发布到所述数据同步环中的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述数据传输指令中的标识信息判断是否存在需要从所述数据同步环中接收的待同步数据;
和/或
第二同步单元,用于如果存在需要从所述数据同步环中接收的待同步数据,则在向所述数据同步环中的下一个节点机发送的所述数据传输指令中携带重传请求,所述重传请求中包含有需要从所述数据同步环中接收的待同步数据的标识信息,以使所述数据同步环中的下一个节点机根据所述重传请求中的标识信息将需要从所述数据同步环中接收的待同步数据广播到所述数据同步环中。
7.根据权利要求6所述的数据同步系统,其特征在于,所述判断模块还包括:
第三判断单元,用于判断所述数据传输指令中是否携带有重传请求;如果所述数据传输指令中携带有重传请求,执行数据重传操作;所述数据重传操作包括:解析所述重传请求中的标识信息,将与所述重传请求中的标识信息相对应的待同步数据广播到所述数据同步环中,并清除所述数据传输指令中的重传请求。
8.根据权利要求7所述的数据同步系统,其特征在于,第三判断单元中还包括:
记录单元,用于记录接收到所述重传请求的次数;
执行单元,用于在所述次数大于预设阈值且每次接收到的所述重传请求中的标识信息均相同时,停止执行所述数据重传操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610323913.6A CN105812492B (zh) | 2016-05-16 | 2016-05-16 | 一种数据同步方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610323913.6A CN105812492B (zh) | 2016-05-16 | 2016-05-16 | 一种数据同步方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105812492A CN105812492A (zh) | 2016-07-27 |
CN105812492B true CN105812492B (zh) | 2019-03-12 |
Family
ID=56452273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610323913.6A Active CN105812492B (zh) | 2016-05-16 | 2016-05-16 | 一种数据同步方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105812492B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406793B (zh) * | 2016-09-13 | 2019-09-17 | 广东威创视讯科技股份有限公司 | 节点机的标识配置方法和系统与ip地址分配方法和系统 |
CN106357782B (zh) * | 2016-09-29 | 2019-06-28 | 苏州科达科技股份有限公司 | 用于数据同步的多级架构、数据同步方法和故障处理方法 |
CN106850835B (zh) * | 2017-03-01 | 2020-07-17 | 北京索瑞特医学技术有限公司 | 数据处理方法及装置 |
CN108650267B (zh) * | 2018-05-14 | 2021-02-09 | 百度在线网络技术(北京)有限公司 | 区块链数据传输方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1196852A (zh) * | 1996-08-29 | 1998-10-21 | 埃克斯塞尔开关公司 | 分布式网络同步系统 |
US6606362B1 (en) * | 1999-06-29 | 2003-08-12 | Nortel Networks Limited | Synchronization in a telecommunications network |
CN101237319A (zh) * | 2008-02-20 | 2008-08-06 | 杭州华三通信技术有限公司 | 以太环网中的时间同步方法和以太环网系统 |
CN104125030A (zh) * | 2013-04-29 | 2014-10-29 | 西门子公司 | 用于通讯网络中的时间同步的方法 |
-
2016
- 2016-05-16 CN CN201610323913.6A patent/CN105812492B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1196852A (zh) * | 1996-08-29 | 1998-10-21 | 埃克斯塞尔开关公司 | 分布式网络同步系统 |
US6606362B1 (en) * | 1999-06-29 | 2003-08-12 | Nortel Networks Limited | Synchronization in a telecommunications network |
CN101237319A (zh) * | 2008-02-20 | 2008-08-06 | 杭州华三通信技术有限公司 | 以太环网中的时间同步方法和以太环网系统 |
CN104125030A (zh) * | 2013-04-29 | 2014-10-29 | 西门子公司 | 用于通讯网络中的时间同步的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105812492A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108600353A (zh) | 一种区块链节点的并行块同步方法 | |
CN105812492B (zh) | 一种数据同步方法及系统 | |
EP0303830A2 (en) | Multicast data distribution system | |
US20150365320A1 (en) | Method and device for dynamically switching gateway of distributed resilient network interconnect | |
US20070257786A1 (en) | Sequencing multi-source messages for delivery as partial sets to multiple destinations | |
JPS5875345A (ja) | デイジタル信号伝送方式 | |
CN103944746A (zh) | 一种双机热备的方法及装置 | |
US20040032625A1 (en) | Node structure information management method and radio network system | |
JP2595965B2 (ja) | 同報通信システム | |
CN107528747B (zh) | 主从站通信状态的诊断方法和装置及计算机可读存储介质 | |
EP2785135A1 (en) | Enhancements to resource allocation for MBSFN transmission in an MBSFN area | |
CN110502572A (zh) | 一种数据同步的方法及服务器 | |
CN105812161B (zh) | 一种控制器故障备份方法和系统 | |
CN106357782B (zh) | 用于数据同步的多级架构、数据同步方法和故障处理方法 | |
CN106059936B (zh) | 云系统组播文件的方法及装置 | |
CN109062681A (zh) | 一种周期性循环任务的执行方法、系统、装置及存储介质 | |
CN103281356A (zh) | 一种分发文件的方法及系统 | |
CN110213359B (zh) | 一种基于d2d的车联网组网数据推送系统和方法 | |
CN108390919A (zh) | 一种用于高可靠双机热备的消息同步系统及方法 | |
CN106953761B (zh) | 服务器备灾系统及基于备灾系统的处理消息的方法 | |
CN104754550B (zh) | 一种Diameter消息传递方法、装置及系统 | |
CN104486215A (zh) | 一种消息发送方法及设备 | |
CN102255716A (zh) | 一种对协议状态的设备间备份的方法及系统 | |
CN111813795B (zh) | 在区块链网络中确认交易的方法及装置 | |
WO2018107480A1 (zh) | 一种业务调度方法及系统 |
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 |