分布式群组通信的消息顺序性保证方法、装置和设备制造方法及图纸

技术编号:36987936 阅读:14 留言:0更新日期:2023-03-25 18:05
本申请的实施例提供了分布式群组通信的消息顺序性保证方法、装置、设备和计算机可读存储介质。所述方法包括群组内任一成员,以预设顺序向群内所有成员发送带有TOTAL ORDER的消息;群组内的所有成员,接收所述带有TOTAL ORDER的消息,并进行标记缓存到消息队列;群组内的,以预设顺序向群组内的所有成员发送与所述带有TOTAL ORDER的消息对应的带有标记的消息;群组内的所有成员,接收到所述带有标记的消息后,将其缓存到消息队列;同时群组内的所有成员检查消息队列,若所述消息队列中存在与所述带有TOTAL ORDER的消息对应的标记信息,则交付给对应的应用。以此方式,将消息收发完全分离,保证了群内消息顺序性问题,即保证了所有成员收到的所有消息的顺序的一致。了所有成员收到的所有消息的顺序的一致。了所有成员收到的所有消息的顺序的一致。

【技术实现步骤摘要】
分布式群组通信的消息顺序性保证方法、装置和设备


[0001]本申请的实施例涉及分布式通信领域,尤其涉及分布式群组通信的消息顺序性保证方法、装置、设备和计算机可读存储设备。

技术介绍

[0002]在现有的群组通讯的技术实现中,通常采用有中心的主备或主从方式方式来实现,该方法虽然能保证消息的顺序性,但由于存在中心化的集中管理节点,极易产生单点故障问题,且效率低。而不采用中心化方式实现,则在节点宕机、网络质量差异等应用场景下,会导致每个群组成员接收数据的顺序不一致。具体如下:1、基于中心管理节点的群组通信方式,容易出现单点故障;2、基于中心管理节点的群组通信方式,在保障消息顺序性时,容易出现性能瓶颈。每一次消息传递需要中心节点与每个成员节点进行确认完成之后再进行下一个消息,从而保证消息顺序性,导致消息传输效率低;3、顺序不一致问题,发送消息到其他成员之间的网络较差或网络质量差异(比如有的链路时延大等),会导致每个群组成员接收数据的顺序不一致,以至于对应的群组成员按照相同逻辑对数据进行处理时,导致最终的成员之间的数据状态不一致。

技术实现思路

[0003]根据本申请的实施例,提供了一种分布式群组通信的消息顺序性保证方案。
[0004]在本申请的第一方面,提供了一种分布式群组通信的消息顺序性保证方法。该方法包括:群组内任一成员,以预设顺序向群内所有成员发送带有TOTAL ORDER的消息;其中,TOTAL ORDER表示全序群组内的所有成员,接收所述带有TOTAL ORDER的消息,并进行标记缓存到消息队列;群组内的,以预设顺序向群组内的所有成员发送与所述带有TOTAL ORDER的消息对应的带有标记的消息;其中,表示状态稳定且完整的成员;群组内的所有成员,接收到所述带有标记的消息后,将其缓存到消息队列;同时群组内的所有成员检查消息队列,若所述消息队列中存在与所述带有TOTAL ORDER的消息对应的标记信息,则交付给对应的应用。
[0005]进一步地,所述预设顺序包括FIFO顺序。
[0006]进一步地,所述预设顺序还包括基于因果逻辑构建的因果有序消息顺序。
[0007]在本申请的第二方面,提供了一种分布式群组通信的消息顺序性保证装置。该装置包括:第一发送模块,用于群组内任一成员,以预设顺序向群内所有成员发送带有TOTAL ORDER的消息;其中,TOTAL ORDER表示全序
标记模块,用于群组内的所有成员,接收所述带有TOTAL ORDER的消息,并进行标记缓存到消息队列;第二发送模块,用于群组内的,以预设顺序向群组内的所有成员发送与所述带有TOTAL ORDER的消息对应的带有标记的消息;其中,表示状态稳定且完整的成员;处理模块,用于群组内的所有成员,接收到所述带有标记的消息后,将其缓存到消息队列;同时群组内的所有成员检查消息队列,若所述消息队列中存在与所述带有TOTAL ORDER的消息对应的标记信息,则交付给对应的应用。
[0008]在本申请的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
[0009]在本申请的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本申请的第一方面的方法。
[0010]本申请实施例提供的分布式群组通信的消息顺序性保证方法,通过群组内任一成员,以预设顺序向群内所有成员发送带有TOTAL ORDER的消息;群组内的所有成员,接收所述带有TOTAL ORDER的消息,并进行标记缓存到消息队列;群组内的,以预设顺序向群组内的所有成员发送与所述带有TOTAL ORDER的消息对应的带有标记的消息;群组内的所有成员,接收到所述带有标记的消息后,将其缓存到消息队列;同时群组内的所有成员检查消息队列,若所述消息队列中存在与所述带有TOTAL ORDER的消息对应的标记信息,则交付给对应的应用,将消息收发完全分离,保证了群内消息顺序性问题,即保证了所有成员收到的所有消息的顺序的一致。
[0011]应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本申请的实施例的关键或重要特征,亦非用于限制本申请的范围。本申请的其它特征将通过以下的描述变得容易理解。
附图说明
[0012]结合附图并参考以下详细说明,本申请各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:图1示出了根据本申请的实施例的分布式群组通信的消息顺序性保证方法的流程图;图2示出了根据本申请的实施例的群组示意图;图3示出了根据本申请的实施例的因果有序消息顺序性示意图;图4示出了根据本申请的实施例的FIFO有序消息顺序性示意图;图5示出了根据本申请的实施例的群组通信流程图;图6示出了根据本申请的实施例的分布式群组通信的消息顺序性保证装置的方框图;图7示出了适于用来实现本申请实施例的终端设备或服务器的结构示意图。
实施方式
[0013]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例
中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
[0014]另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0015]图1示出了根据本公开实施例的分布式群组通信的消息顺序性保证方法的流程图。所述方法包括:S110,群组内任一成员,以预设顺序向群内所有成员发送带有TOTAL ORDER的消息。
[0016]在一些实施例中,本公开中的群组如图2所示,Mc(),表示群内协调者成员,通常为最早加入群组的成员(状态稳定且完整的成员);M1、Mn,表示群内其他成员;Msgi,表示群内任一成员向群内发送的消息。
[0017]需要说明的是,本公开的群组,成员发送的消息,自身也会收到,用以保证角色上简单清晰,基于此模型的应用,无需在发送消息的同时关注自身是否需要接收该消息。
[0018]在一些实施例中,群组内任一成员Mj,以预设顺序向群内所有成员发送带有TOTAL ORDER的消息;所述预设顺序包括FIFO顺序和基于因果逻辑构建的因果有序消息顺序;例如,Mj以FIFO顺序向群内所有成员进行广播(带有TOTAL ORDER的消息)。
[0019]其中,因果有序消息顺序性(CAUSAL ORDER):参考图3,群组内成员Mi先发送了一个Msgi1消息,成员Mj收到后,发送了一个Msgj1消息。从成员Mk的角度分析,其先收到Msgi1,然后收到Msgj1,上述两条消息都可以立即按本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式群组通信的消息顺序性保证方法,其特征在于,包括:群组内任一成员,以预设顺序向群内所有成员发送带有TOTAL ORDER的消息;其中,TOTAL ORDER表示全序;群组内的所有成员,接收所述带有TOTAL ORDER的消息,并进行标记缓存到消息队列;群组内的,以预设顺序向群组内的所有成员发送与所述带有TOTAL ORDER的消息对应的带有标记的消息;其中,表示状态稳定且完整的成员;群组内的所有成员,接收到所述带有标记的消息后,将其缓存到消息队列;同时群组内的所有成员检查消息队列,若所述消息队列中存在与所述带有TOTAL ORDER的消息对应的标记信息,则交付给对应的应用。2.根据权利要求1所述的方法,其特征在于,所述预设顺序包括FIFO顺序。3.根据权利要求2所述的方法,其特征在于,所述预设顺序还包括基于因果逻辑构建的因果有序消息顺序。4.一种分布式群组通信的消息顺序性保证装置,其特征在于,包括:第一发送模块,用于群组内任一成员,以预设顺序向群内所有成员发送带有TOTAL ORDER的消息;其中TOTAL OR...

【专利技术属性】
技术研发人员:姚宏宇
申请(专利权)人:北京友友天宇系统技术有限公司
类型:发明
国别省市:

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

1