一种集群间的数据同步方法、装置和电子设备制造方法及图纸

技术编号:32462623 阅读:13 留言:0更新日期:2022-02-26 08:54
本发明专利技术公开了一种集群间的数据同步方法、装置和电子设备,方法包括:将业务活动产生的携带版本号的业务数据发送至主集群,并对应生成业务数据的业务消息,然后将业务消息发送至消息队列;将业务消息从消息队列中取出,并基于业务消息的版本号校验业务消息是否为备份集群当前待接收业务数据对应的目标业务消息;若校验通过则从业务消息中解析出业务数据,并将业务数据发送至备份集群以进行存储。本发明专利技术提供的技术方案,解决了由消息在传输过程中乱序所导致的数据不一致问题,保证了集群之间的数据一致性。数据一致性。数据一致性。

【技术实现步骤摘要】
一种集群间的数据同步方法、装置和电子设备


[0001]本专利技术涉及数据处理领域,具体涉及一种集群间的数据同步方法、装置和电子设备。

技术介绍

[0002]在金融等行业中,对数据安全有极高的要求。一般为了保证数据安全,容灾建设是至关重要的,例如常用的“两地三中心”和“双活”方案。容灾建设的核心是数据备份,而备份数据就必须涉及到数据同步,因此数据同步被广泛应用于容灾建设中,保证两个或多个集群内备份数据一致。目前应用较广的数据同步方案是基于本地消息表的最终一致性解决方案,如图1所示,首先为执行的业务逻辑生成业务消息,并将业务逻辑的业务数据和业务消息均存储于一个主集群中,之后通过一段消息管理程序周期性地从主集群中取消息,并将取得的消息存入消息队列,再通过消息队列将需要同步的消息发送到其他备份集群中。但是现有技术的的同步方案,很容易在消息传输的过程中由于丢失消息或者由于其他突发情况导致消息乱序,从而导致备份集群中的数据和主集群中的数据不一致。因此,在消息乱序现象不可避免时,如何保证集群之间的数据一致性是亟待解决的问题。

技术实现思路

[0003]有鉴于此,本专利技术实施方式提供了一种集群间的数据同步方法、装置和电子设备,从而解决了由消息在传输过程中乱序所导致的数据不一致问题,保证了集群之间的数据一致性。
[0004]根据第一方面,本专利技术提供了一种集群间的数据同步方法,所述方法包括:将业务活动产生的携带版本号的业务数据发送至主集群,并对应生成所述业务数据的业务消息,然后将所述业务消息发送至消息队列,其中,所述版本号是从预设的版本号序列中取出的数值,所述业务活动、所述业务数据的生成、所述业务数据在所述主集群中的存储、所述业务消息的创建以及所述业务消息的发送构成一个本地事务;将所述业务消息从所述消息队列中取出,并基于所述业务消息的版本号校验所述业务消息是否为备份集群当前待接收业务数据对应的目标业务消息;若校验通过则从所述业务消息中解析出所述业务数据,并将所述业务数据发送至备份集群以进行存储。
[0005]可选地,在所述基于所述业务消息的版本号校验所述业务消息是否为备份集群当前待接收的目标业务消息之后,所述方法还包括:若校验不通过,并在所述版本号表征所述业务消息版本超前时,通知所述消息队列重新部署所述业务消息。
[0006]可选地,在将所述业务消息发送至消息队列中的同时,还将所述业务消息发送至所述主集群中,在所述基于所述业务消息的版本号校验所述业务消息是否为备份集群当前待接收业务数据对应的目标业务消息之后,所述方法还包括:通过消息删除模块将校验通过和校验为版本滞后的业务消息从所述主集群中删除。
[0007]可选地,所述方法还包括:将所述主集群中存在时长超过预设时间长度的第一业
务消息通过独立重发模块发送至所述消息队列,以进行业务消息的重新部署;通过所述独立重发模块重置所述第一业务消息的存在时长,并更新所述第一业务消息的发送次数。
[0008]可选地,所述版本号以预设顺序生成,所述基于所述业务消息的版本号校验所述业务消息是否为备份集群当前待接收业务数据对应的目标业务消息,包括:判断所述备份集群中是否存在与所述业务消息对应同一执行对象的业务数据,若不存在则校验通过,并将所述业务消息作为所述目标业务消息,所述执行对象是进行所述业务活动的外部用户;若存在则判断所述业务消息的版本号与备份集群中对应同一执行对象的业务数据的版本号是否符合所述预设顺序,所述预设顺序为所述版本号序列的顺序;若符合所述预设顺序则校验通过,并将所述业务消息作为所述目标业务消息;若不符合所述预设顺序则校验不通过。
[0009]可选地,所述所述将业务活动产生的携带版本号的业务数据发送至主集群,并对应生成所述业务数据的业务消息,然后将所述业务消息发送至消息队列,包括:若所述业务活动执行失败,则退出当前数据同步进程,并通知外部用户重新发起执行所述业务活动的指令;若所述业务活动执行成功,将所述业务活动产生的携带版本号的业务数据发送至主集群;若所述业务数据在所述主集群中存储失败,则退出当前数据同步进程,并通知外部用户重新发起执行所述业务活动的指令;若所述业务数据在所述主集群中存储成功,则创建所述业务数据对应的业务消息;若所述业务消息创建失败,则撤销所述业务活动的执行,并退出当前数据同步进程,并通知外部用户重新发起执行所述业务活动的指令;若所述业务消息创建成功,则将所述业务消息发送至消息队列;若所述业务消息发送失败,从所述主集群中将所述业务数据撤销,并退出当前数据同步进程,并通知外部用户重新发起执行所述业务活动的指令。
[0010]根据第二方面,本专利技术提供了一种集群间的数据同步装置,所述装置包括:本地事务模块,用于将业务活动产生的携带版本号的业务数据发送至主集群,并对应生成所述业务数据的业务消息,然后将所述业务消息发送至消息队列,其中,所述版本号是从预设的版本号序列中取出的数值,所述业务活动、所述业务数据的生成、所述业务数据在所述主集群中的存储、所述业务消息的创建以及所述业务消息的发送构成一个本地事务;版本校验模块,用于将所述业务消息从所述消息队列中取出,并基于所述业务消息的版本号校验所述业务消息是否为备份集群当前待接收业务数据对应的目标业务消息;请求发送模块,用于若校验通过则从所述业务消息中解析出所述业务数据,并将所述业务数据发送至备份集群以进行存储。
[0011]可选地,所述装置还包括:消息重新部署模块,用于在校验不通过时,并在所述版本号表征所述业务消息版本超前时,通知所述消息队列重新部署所述业务消息。
[0012]根据第三方面,本专利技术实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
[0013]根据第四方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
[0014]本申请提供的技术方案,具有如下优点:
[0015]本申请提供的技术方案,在业务活动之后,将业务活动产生的业务数据发送至主集群中,并基于携带版本号的业务数据生成对应的业务消息,并将业务消息发送至消息队列中,之后通过消费者程序从消息队列中将业务消息取出,消费者程序会对业务消息的版本号进行校验,判断该业务消息是否是备份集群待接收的业务消息,只有在版本校验通过后,才将该业务消息解析出对应的业务数据,并同步到备份集群中,以完成业务同步。通过版本校验的机制,使得业务消息只有在版本号校验通过时才完成同步,解决了由消息在传输过程中乱序所导致的数据不一致问题,提高了备份集群中数据的准确性,并且每次生成的业务消息都直接发送至消息队列,不需要再从主集群中取出转达至消息队列,节省了冗余时间。
[0016]此外,为了方便业务消息的校对,保留了现有技术业务消息存储本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集群间的数据同步方法,其特征在于,所述方法包括:将业务活动产生的携带版本号的业务数据发送至主集群,并对应生成所述业务数据的业务消息,然后将所述业务消息发送至消息队列,其中,所述版本号是从预设的版本号序列中取出的数值,所述业务活动、所述业务数据的生成、所述业务数据在所述主集群中的存储、所述业务消息的创建以及所述业务消息的发送构成一个本地事务;将所述业务消息从所述消息队列中取出,并基于所述业务消息的版本号校验所述业务消息是否为备份集群当前待接收业务数据对应的目标业务消息;若校验通过则从所述业务消息中解析出所述业务数据,并将所述业务数据发送至备份集群以进行存储。2.根据权利要求1所述的方法,其特征在于,在所述基于所述业务消息的版本号校验所述业务消息是否为备份集群当前待接收的目标业务消息之后,所述方法还包括:若校验不通过,并在所述版本号表征所述业务消息版本超前时,通知所述消息队列重新部署所述业务消息。3.根据权利要求1所述的方法,其特征在于,在将所述业务消息发送至消息队列中的同时,还将所述业务消息发送至所述主集群中,在所述基于所述业务消息的版本号校验所述业务消息是否为备份集群当前待接收业务数据对应的目标业务消息之后,所述方法还包括:通过消息删除模块将校验通过和校验为版本滞后的业务消息从所述主集群中删除。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:将所述主集群中存在时长超过预设时间长度的第一业务消息通过独立重发模块发送至所述消息队列,以进行业务消息的重新部署;通过所述独立重发模块重置所述第一业务消息的存在时长,并更新所述第一业务消息的发送次数。5.根据权利要求1所述的方法,其特征在于,所述基于所述业务消息的版本号校验所述业务消息是否为备份集群当前待接收业务数据对应的目标业务消息,包括:判断所述备份集群中是否存在与所述业务消息对应同一执行对象的业务数据,若不存在则校验通过,并将所述业务消息作为所述目标业务消息,所述执行对象是进行所述业务活动的外部用户;若存在则判断所述业务消息的版本号与备份集群中对应同一执行对象的业务数据的版本号是否符合所述预设顺序,所述预设顺序为所述版本号序列的顺序;若符合所述预设顺序则校验通过,并将所述业务消息作为所述目标业务消息;若不符合所述预设顺序则校验不通过。6.根据权利要求1所述的方法,其特征在于,所述将业务活动产生的携带...

【专利技术属性】
技术研发人员:季广猛
申请(专利权)人:新华三大数据技术有限公司
类型:发明
国别省市:

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

1