分布式系统中处理同步消息的方法、装置、分布式系统制造方法及图纸

技术编号:11534886 阅读:61 留言:0更新日期:2015-06-03 09:41
本申请公开了分布式系统中处理同步消息的方法、装置、分布式系统,在分布式系统中处理同步消息的方法中,接收同步消息,所述同步消息包括实时同步消息和批量同步消息,且所述同步消息携带有序列号,优先处理所述批量同步消息,记录已处理的最后一个批量同步消息的序列号,然后处理所携带的序列号小于所述已处理的最后一个批量同步消息的序列号的实时同步消息,如果所述批量同步消息已接收完毕,且所述批量同步消息均已处理,则处理所述实时同步消息。本申请能够保证实时同步消息和批量同步消息的处理时序,并且实现简单,不产生额外开销。

【技术实现步骤摘要】
分布式系统中处理同步消息的方法、装置、分布式系统
本申请涉及分布式系统同步技术,尤其涉及分布式系统中数据同步的方法、装置、分布式系统。
技术介绍
分布式系统中,主用设备和备用设备之间经常会需要进行数据同步,这种同步通常包括批量同步和实时同步,而批量同步消息具有时效性,需要保证批量同步消息在过期前被处理。现有技术通过图1所示的方式来保证处理两种同步消息的时序问题。主用实体通过组播通道发送实时同步消息,通过单播通道发送批量同步消息,当主用实体切换通道时,向原通道发送一个通道切换消息,备用实体根据通道切换消息来切换处理通道,从而保证备用实体对同步消息的处理顺序与主用主控板发送的同步消息的顺序一致。由于此做法实现较为复杂,需要增加额外的通道切换消息,通道切换频繁会产生一定的开销。
技术实现思路
本申请提供一种分布式系统中处理同步消息的方法、装置、分布式系统,能够保证实时同步消息和批量同步消息的处理时序,并且实现简单,不产生额外开销。根据本申请实施例的第一方面,提供一种分布式系统中处理同步消息的方法,该方法包括步骤:步骤1,接收同步消息,所述同步消息包括实时同步消息和批量同步消息,且所述同步消息携带有序列号,所述序列号用以标识所发送的所述同步消息的先后次序;步骤2,在收到首个批量同步消息后,如果批量同步消息尚未接收完毕,且存在未处理的所述批量同步消息,则处理所述批量同步消息,记录已处理的最后一个批量同步消息的序列号,并执行步骤3;如果所述批量同步消息已接收完毕,且所述批量同步消息均已处理,则处理所述实时同步消息;步骤3,如果所述实时同步消息所携带的序列号小于所述已处理的最后一个批量同步消息的序列号,则处理所述实时同步消息,否则返回步骤2。在一个实施例中,所述批量同步消息存储于第一队列中,步骤2中处理所述批量同步消息的过程包括:将所述第一队列中当前所存储的所有批量同步消息依次进行处理;或按照第一预定规则处理所述第一队列中的一个或多个批量同步消息;所述第一预定规则为每轮所处理的批量同步消息的数量小于第一预定值。在一个实施例中,所述实时同步消息存储于第二队列中,步骤3中处理所述实时同步消息的过程包括:将所述第二队列中当前所存储的所有序列号小于所述已处理的最后一个批量同步消息的实时同步消息依次进行处理;或按照第二预定规则处理所述第二队列中的一个或多个序列号小于所述已处理的最后一个批量同步消息的实时同步消息;所述第二预定规则为每轮所处理的实时同步消息的数量小于第二预定值。作为一个实施例,步骤2中判断所述批量同步消息已接收完毕的过程包括:接收到结束报文,所述结束报文用于标记所述批量同步消息已接收完。根据本申请实施例的第二方面,本申请还提供一种分布式系统中处理同步消息的装置,包括:接收模块,用于接收同步消息,所述同步消息包括实时同步消息和批量同步消息,且所述同步消息携带有序列号,所述序列号用以标识所发送的所述同步消息的先后次序;第一存储模块,用于存储批量同步消息;第二存储模块,用于存储实时同步消息;处理模块,用于在收到首个批量同步消息后,如果批量同步消息尚未接收完毕,且存在未处理的所述批量同步消息,则从所述第一存储模块读取所述批量同步消息并处理,记录已处理的最后一个批量同步消息的序列号,然后从所述第二存储模块读取所述实时同步消息,如果所述实时同步消息所携带的序列号小于所述已处理的最后一个批量同步消息的序列号,则处理所述实时同步消息,否则继续从所述第一存储模块读取所述批量同步消息并处理;如果所述批量同步消息已接收完毕,且所述批量同步消息均已处理,则从所述第二存储模块读取所述实时同步消息并处理。在一个实施例中,所述处理模块处理所述批量同步消息的过程包括:从所述第一存储模块中读取当前所存储的所有批量同步消息依次进行处理;或按照第一预定规则处理所述第一存储模块中的一个或多个批量同步消息;所述第一预定规则为每轮所处理的批量同步消息的数量小于第一预定值。在一个实施例中,如果所述实时同步消息所携带的序列号小于所述已处理的最后一个批量同步消息的序列号,所述处理模块处理所述实时同步消息的过程包括:将第二存储模块中所存储的所有序列号小于所述已处理的最后一个批量同步消息的实时同步消息依次进行处理;或按照第二预定规则处理所述第二存储模块中的一个或多个序列号小于所述已处理的最后一个批量同步消息的实时同步消息;所述第二预定规则为每轮所处理的实时同步消息的数量小于第二预定值。进一步的,所述接收模块还用于接收结束报文,所述结束报文用于标记所述批量同步消息已接收完。根据本申请实施例的第三方面,本申请还提供一种分布式系统,包括主用实体和备用实体,所述主用实体,用于发送同步消息,所述同步消息包括实时同步消息和批量同步消息,且所述同步消息携带有序列号,所述序列号用以标识所发送的所述同步消息的先后次序;所述备用实体,用于接收所述同步消息,在收到首个批量同步消息后,如果所述批量同步消息尚未接收完毕,且存在未处理的所述批量同步消息,则读取所述批量同步消息并处理,记录已处理的最后一个批量同步消息的序列号,然后读取所述实时同步消息,如果所述实时同步消息所携带的序列号小于所述已处理的最后一个批量同步消息的序列号,则处理所述实时同步消息,否则继续读取所述批量同步消息并处理;如果所述批量同步消息已接收完毕,且所述批量同步消息均已处理,则读取所述实时同步消息并处理。进一步的,所述主用实体还用于发送结束报文,所述结束报文用于标记所述批量同步消息已接收完;所述备用实体还用于接收结束报文。本申请通过在同步消息中携带序列号,并通过序列号控制批量同步消息与实时同步消息的处理先后关系,在处理先后顺序时,基于批量同步消息和实时同步消息的特点,提供了相应的接收控制机制,即首先处理的同步消息需要是批量同步消息,处理批量同步消息后所处理的实时同步消息的发送顺序需先于此轮批量同步消息中已处理的最后一条批量同步消息的发送顺序。当处理完所有的批量同步消息后,实时同步消息的处理过程无需再判断实时同步消息的序列号与已处理的批量同步消息的关系,从而保证了接收端批量同步消息与实时同步消息最终正确处理。由于此套接收控制机制实现简单,因此不产生额外的开销。附图说明图1为现有技术中数据同步的方法示意图;图2为本申请实施例中分布式系统的架构图;图3为本申请实施例中处理同步消息的方法的流程图;图4a为本申请应用实例中分布式系统的实例图;图4b为本申请应用实例中发送端和接收端交互信息的流程图;图4c为本申请应用实例中接收端处理同步消息的流程图;图5为本申请应用实例中处理同步消息的装置的硬件架构图;图6为本申请应用实例中处理同步消息的装置的逻辑框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚本文档来自技高网...

【技术保护点】
一种分布式系统中处理同步消息的方法,其特征在于,该方法包括步骤:步骤1,接收同步消息,所述同步消息包括实时同步消息和批量同步消息,且所述同步消息携带有序列号,所述序列号用以标识所发送的所述同步消息的先后次序;步骤2,如果存在未处理的所述批量同步消息,则处理所述批量同步消息,记录已处理的最后一个批量同步消息的序列号,并执行步骤3;如果所述批量同步消息已接收完毕,且所述批量同步消息均已处理,则处理所述实时同步消息;步骤3,如果所述实时同步消息所携带的序列号小于所述已处理的最后一个批量同步消息的序列号,则处理所述实时同步消息,否则返回步骤2。

【技术特征摘要】
1.一种分布式系统中处理同步消息的方法,其特征在于,该方法包括步骤:步骤1,接收同步消息,所述同步消息包括实时同步消息和批量同步消息,且所述同步消息携带有序列号,所述序列号用以标识所发送的所述同步消息的先后次序;步骤2,在收到首个批量同步消息后,如果批量同步消息尚未接收完毕,且存在未处理的所述批量同步消息,则处理所述批量同步消息,记录已处理的最后一个批量同步消息的序列号,并执行步骤3;如果所述批量同步消息已接收完毕,且所述批量同步消息均已处理,则处理所述实时同步消息;步骤3,如果所述实时同步消息所携带的序列号小于所述已处理的最后一个批量同步消息的序列号,则处理所述实时同步消息,否则返回步骤2。2.根据权利要求1所述的方法,其特征在于,所述批量同步消息存储于第一队列中,步骤2中处理所述批量同步消息的过程包括:将所述第一队列中当前所存储的所有批量同步消息依次进行处理;或按照第一预定规则处理所述第一队列中的一个或多个批量同步消息;所述第一预定规则为每轮所处理的批量同步消息的数量小于第一预定值。3.根据权利要求1所述的方法,其特征在于,所述实时同步消息存储于第二队列中,步骤3中处理所述实时同步消息的过程包括:将所述第二队列中当前所存储的所有序列号小于所述已处理的最后一个批量同步消息的实时同步消息依次进行处理;或按照第二预定规则处理所述第二队列中的一个或多个序列号小于所述已处理的最后一个批量同步消息的实时同步消息;所述第二预定规则为每轮所处理的实时同步消息的数量小于第二预定值。4.根据权利要求1所述的方法,其特征在于,步骤2中判断所述批量同步消息已接收完毕的过程包括:接收到结束报文,所述结束报文用于标记所述批量同步消息已接收完。5.一种分布式系统中处理同步消息的装置,其特征在于,包括:接收模块,用于接收同步消息,所述同步消息包括实时同步消息和批量同步消息,且所述同步消息携带有序列号,所述序列号用以标识所发送的所述同步消息的先后次序;第一存储模块,用于存储批量同步消息;第二存储模块,用于存储实时同步消息;处理模块,用于在收到首个批量同步消息后,如果批量同步消息尚未接收完毕,且存在未处理的所述批量同步消息,则从所述第一存储模块读取所述批量同步消息并处理,记录已处理的最后一个批量同步消息的序列号,然后从所述第二存储模块读取所述...

【专利技术属性】
技术研发人员:徐鹏飞
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1