一种分布式数据同步方法技术

技术编号:24129946 阅读:20 留言:0更新日期:2020-05-13 05:56
本发明专利技术公开了一种分布式数据同步方法。它具体包括如下步骤:(1)创建群组,确定分布式系统中通信的各个节点,配置通信协议端口,各个节点通过配置的通信协议端口进行消息分发、同步,构成一个组播通信组件;(2)分布式系统中有新的成员加入时,通知到所有其他成员新成员的加入,并且参与消息的分发接收;旧成员离开群组,通知到其他所有成员其离开群组,群组剔除离开的成员,不再发送和接收离开成员的消息;(3)确定群组间消息发送不会丢失,每条消息的发送以收到响应为发送成功,如果没有收到响应即为发送失败,对消息进行重发,确保群组成员收到消息。本发明专利技术的有益效果是:可以简化群组间通信的复杂性,提高开发效率。

【技术实现步骤摘要】
一种分布式数据同步方法
本专利技术涉及网络通信相关
,尤其是指一种分布式数据同步方法。
技术介绍
分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。分布式系统间信息的同步是通过网络实现,分布式系统各个节点间需要保持一致的状态,相互通知,更新信息,目前的网络应用层协议多是点对点的消息交互。
技术实现思路
本专利技术是为了克服现有技术中存在上述的不足,提供了一种简化群组间通信复杂性且提高开发效率的分布式数据同步方法。为了实现上述目的,本专利技术采用以下技术方案:一种分布式数据同步方法,具体包括如下步骤:(1)创建群组确定群组名称,确定分布式系统中通信的各个节点名称,配置通信协议端口,各个节点配置相同的通信端口,各个节点通过配置的通信协议端口进行消息分发、同步,构成一个组播通信组件;(2)分布式系统中有新的成员加入时,通知到所有其他成员新成员的加入,并且参与消息的分发接收;旧成员离开群组,通知到其他所有成员其离开群组,群组剔除离开的成员,不再发送和接收离开成员的消息;(3)确定群组间消息发送不会丢失,每条消息的发送以收到响应为发送成功,如果没有收到响应即为发送失败,对消息进行重发,重发若干次依然没有回应则认为接收的节点发送故障,以确保群组成员收到消息。本专利技术提供了一个可靠的组播通信组件,该组播通信组件工作模式基于IP多播,也可以在可靠性和群组成员管理上进行扩展,使用该组播通信组件通信的各个节点可以组成一个群组,群组内的成员基于组播通信组件可以实现“单播(对点)”、“组播(对组)”和“广播(对所有)”的三种通信方式;该组播通信组件实现了对群组成员的管理,群组中成员的加入和退出,其他成员都能得到通知;该组播通信组件的通信都是可靠的,保证相互通信的消息不会丢失。本专利技术提供了基于群组的通信方式,用于解决分布式系统多节点间的状态发布、更新,帮助开发分布式系统时屏蔽底层通信细节,专注业务处理;该方法可以简化群组间通信的复杂性,提高开发效率。作为优选,在步骤(1)中,群组中的所有节点使用组播通信组件进行发送和接收状态消息,任意一个节点调用组播通信组件中的发送功能,组件的接收功能接受到同步状态,完成同步任务;群组间保持通信,群组间长时间没有状态更新时,相互的连接可能会断开,因此每个节点都与其他节点保持心跳,每隔一定时间进行ping-pong检测,依据心跳判断节点是否可达,对于网络波动导致的短时心跳丢失,实行自动重连,重连若干次后依然不可到达,认为节点有问题,不再重连,并把故障节点剔除群组,以保证群组的稳定性。作为优选,在步骤(2)中,有群组因为网络或者其他原因意外脱离群组,群组将其作为旧成员离开处理,并在合理可配置的时间后该成员重新加入群组,群组将成员按新成员加入处理,并且将该成员离开的时间段内是信息重新同步到该成员中。作为优选,在步骤(3)中,每个消息的更新,群组成员都需要有应答返回给发送者,发送者节点根据有无收到应答消息判断状态是否更新成功,对应更新失败的消息,在一定时间内进行合理可配置次数的重新发送,增加发送成功的概率;即某条消息要么全部群组成员都收到,或者都收不到,做到群组同一时间各个状态的一致性。作为优选,在步骤(3)中,当有比较大的消息发送时,组播通信组件将消息分解成合理可配置的小块消息加上消息编号进行发送,群组成员接收到分解的消息后,自动将该消息根据消息编号进行合并还原;消息在发送分解与接收还原过程中还需处理消息的顺序,组播通信组件在发送分解与接收还原中处理都需要有序性,对发送的任何消息都保证先发先收。作为优选,在步骤(3)中,短时高频的消息发送,占用大量的计算机资源,组播通信组件设置可配置的发送参数,每秒设定最多发送流量,当发送达到此流量时,阻塞若干毫秒,再进行发送,保证消息的频率,保证整个分布式系统的稳定性。本专利技术的有益效果是:解决分布式系统多节点间的状态发布、更新,帮助开发分布式系统时屏蔽底层通信细节,专注业务处理;该方法可以简化群组间通信的复杂性,提高开发效率。附图说明图1是本专利技术的消息发送图;图2是本专利技术的群组示意图;图3是本专利技术的组播通信组件调用示意图。具体实施方式下面结合附图和具体实施方式对本专利技术做进一步的描述。如图3所述的实施例中,一种分布式数据同步方法,具体包括如下步骤:(1)创建群组确定群组名称(group1),如图2所示,确定分布式系统中通信的各个节点名称(node1,node2,node3…),没有配置名称,则默认以本地ip地址作为名称,配置通信协议端口,各个节点配置相同的通信端口(7701),各个节点通过配置的通信协议端口进行消息分发、同步,构成一个组播通信组件(group1;node1:7701、node2:7701、node3:7701…);如图1所示,群组中的所有节点使用组播通信组件进行发送和接收状态消息,任意一个节点调用组播通信组件中的发送功能,组件的接收功能接受到同步状态,完成同步任务;群组间保持通信,群组间长时间没有状态更新时,相互的连接可能会断开,因此每个节点都与其他节点保持心跳,每隔30s进行ping-pong检测,依据心跳判断节点是否可达,对于网络波动导致的短时心跳丢失,实行自动重连,重连3次后依然不可到达,认为节点有问题,不再重连,并把故障节点剔除群组,以保证群组的稳定性。(2)分布式系统中有新的成员加入时,通知到所有其他成员新成员的加入,并且参与消息的分发接收;旧成员离开群组,通知到其他所有成员其离开群组,群组剔除离开的成员,不再发送和接收离开成员的消息;有群组因为网络或者其他原因意外脱离群组,群组将其作为旧成员离开处理,并在合理可配置的时间后该成员重新加入群组,群组将成员按新成员加入处理,并且将该成员离开的时间段内是信息重新同步到该成员中。(3)确定群组间消息发送不会丢失,每条消息的发送以收到响应为发送成功,如果没有收到响应即为发送失败,对消息进行重发,重发若干次依然没有回应则认为接收的节点发送故障,以确保群组成员收到消息;每个消息的更新,群组成员都需要有应答返回给发送者,发送者节点根据有无收到应答消息判断状态是否更新成功,对应更新失败的消息,在一定时间内(30秒)进行合理可配置次数(3次)的重新发送,增加发送成功的概率;即某条消息要么全部群组成员都收到,或者都收不到,做到群组同一时间各个状态的一致性。当有比较大的消息发送时(默认消息大于8192bytes),组播通信组件将消息分解成合理可配置的小块消息(默认4000bytes)加上消息编号进行发送,群组成员接收到分解的消息后,自动将该消息根据消息编号进行合并还原;消息在发送分解与接收还原过程中还需处理消息的顺序,组播通信组件在发送分解与接收还原中处理都需要有序性,对发送的任何消息都保证先发本文档来自技高网...

【技术保护点】
1.一种分布式数据同步方法,其特征是,具体包括如下步骤:/n(1)创建群组确定群组名称,确定分布式系统中通信的各个节点名称,配置通信协议端口,各个节点配置相同的通信端口,各个节点通过配置的通信协议端口进行消息分发、同步,构成一个组播通信组件;/n(2)分布式系统中有新的成员加入时,通知到所有其他成员新成员的加入,并且参与消息的分发接收;旧成员离开群组,通知到其他所有成员其离开群组,群组剔除离开的成员,不再发送和接收离开成员的消息;/n(3)确定群组间消息发送不会丢失,每条消息的发送以收到响应为发送成功,如果没有收到响应即为发送失败,对消息进行重发,重发若干次依然没有回应则认为接收的节点发送故障,以确保群组成员收到消息。/n

【技术特征摘要】
1.一种分布式数据同步方法,其特征是,具体包括如下步骤:
(1)创建群组确定群组名称,确定分布式系统中通信的各个节点名称,配置通信协议端口,各个节点配置相同的通信端口,各个节点通过配置的通信协议端口进行消息分发、同步,构成一个组播通信组件;
(2)分布式系统中有新的成员加入时,通知到所有其他成员新成员的加入,并且参与消息的分发接收;旧成员离开群组,通知到其他所有成员其离开群组,群组剔除离开的成员,不再发送和接收离开成员的消息;
(3)确定群组间消息发送不会丢失,每条消息的发送以收到响应为发送成功,如果没有收到响应即为发送失败,对消息进行重发,重发若干次依然没有回应则认为接收的节点发送故障,以确保群组成员收到消息。


2.根据权利要求1所述的一种分布式数据同步方法,其特征是,在步骤(1)中,群组中的所有节点使用组播通信组件进行发送和接收状态消息,任意一个节点调用组播通信组件中的发送功能,组件的接收功能接受到同步状态,完成同步任务;群组间保持通信,群组间长时间没有状态更新时,相互的连接可能会断开,因此每个节点都与其他节点保持心跳,每隔一定时间进行ping-pong检测,依据心跳判断节点是否可达,对于网络波动导致的短时心跳丢失,实行自动重连,重连若干次后依然不可到达,认为节点有问题,不再重连,并把故障节点剔除群组,以保证群组的稳定性。


3.根据权利要求2所述的一种分布式数据同步方法,其...

【专利技术属性】
技术研发人员:周波张立峰褚国华
申请(专利权)人:杭州米络星科技集团有限公司
类型:发明
国别省市:浙江;33

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

1