消息同步方法、装置、存储介质和电子设备制造方法及图纸

技术编号:38547700 阅读:12 留言:0更新日期:2023-08-22 20:56
本发明专利技术提供一种消息同步方法、装置、存储介质和电子设备,应用于异地灾备系统,灾备系统包括第一MQ集群、处理组件、第二MQ集群,方法包括:处理组件获取消息同步任务,并获取第一MQ集群中消息同步任务对应的至少一个待同步消息;处理组件基于消息同步任务,确定任务对应的消息主题的路由信息;路由信息包括:消息主题与至少一个消息服务器的对应关系,以及与消息服务器中消息队列的对应关系;处理组件基于路由信息,将各个待同步消息同步至第二MQ集群中,完成消息的全量同步且同步后的消息顺序和第一MQ集群中一致,两个集群互不影响,用户发送消息时,消息仅在同地区流转,保证了RocketMQ性能的同时又保证了消息的冗余能力。RocketMQ性能的同时又保证了消息的冗余能力。RocketMQ性能的同时又保证了消息的冗余能力。

【技术实现步骤摘要】
消息同步方法、装置、存储介质和电子设备


[0001]本专利技术涉及数据同步
,尤其涉及一种消息同步方法、装置、存储介质和电子设备。

技术介绍

[0002]异地灾备是指为防止出现操作失误或系统故障导致本地站点数据丢失,而将全系统或部分数据集合复制到异地站点的过程。目前主流的消息队列(Message Queue,MQ)中间件RocketMQ被广泛应用至各种互联网系统平台,如何基于RocketMQ进行异地灾备是亟待解决的重要课题。
[0003]现有技术中,多基于主备架构进行异地部署,实际上还是同一个MQ集群,在两个地区部署Broker消息服务器,通过本地MQ集群的消息服务器Broker与异地Broker建立连接通道进行消息同步,异地跨网络传输存在延迟,对RocketMQ的性能带来严重影响,使得RocketMQ用户发送消息耗时增加。

技术实现思路

[0004]本专利技术提供一种消息同步方法,用以解决现有技术中异地灾备领域通过本地MQ集群的Broker与异地的Broker建立连接通道进行消息同步,发送消息时因跨地域网络传输存在延迟的性能缺陷,实现消息主题的全量同步且同步后的消息顺序和第一MQ集群中消息顺序一致,并且两个RocketMQ集群完全隔离互不影响,RocketMQ用户发送消息时,消息仅在同地区进行流转,网络延迟小,从而保证了RocketMQ整体性能的同时又保证了消息的冗余能力。
[0005]一方面,本专利技术提供一种消息同步方法,应用于异地灾备系统,异地灾备系统包括第一消息队列MQ集群、处理组件、第二MQ集群,方法包括:
[0006]处理组件获取消息同步任务,并获取第一MQ集群中消息同步任务对应的至少一个待同步消息;
[0007]处理组件基于消息同步任务,确定消息同步任务对应的消息主题的路由信息;路由信息包括:消息主题与用于存储消息主题的消息的至少一个消息服务器的对应关系,以及与消息服务器中消息队列的对应关系;
[0008]处理组件基于消息主题的路由信息,将各个待同步消息同步至第二MQ集群中。
[0009]可选地,本专利技术提供的消息同步方法,待同步消息为普通消息,基于消息主题的路由信息,将各个待同步消息同步至第二MQ集群中,包括:
[0010]针对任一普通消息,基于普通消息与消息服务器的对应关系,以及与消息服务器中消息队列的对应关系,将普通消息同步至与普通消息对应的消息服务器的消息队列中。
[0011]可选地,本专利技术提供的消息同步方法,同步消息为死信消息,基于消息主题的路由信息,将各个待同步消息同步至第二MQ集群中之前,还包括:
[0012]获取死信消息在第二MQ集群中的操作权限;
[0013]将操作权限修改为读写权限。
[0014]可选地,本专利技术提供的消息同步方法,在待同步消息为重试消息的情况下,处理组件基于消息同步任务,确定消息同步任务对应的消息主题的路由信息,包括:
[0015]基于各个重试消息的重试次数,得到各个重试消息的延迟等级;
[0016]基于各个重试消息的延迟等级和消息同步任务,确定路由信息;
[0017]方法还包括:
[0018]将各个重试消息的延迟等级和路由信息发送至第二MQ集群;
[0019]基于消息主题的路由信息,将各个待同步消息同步至第二MQ集群中,包括:
[0020]基于各个重试消息的延迟等级和路由信息将各个重试消息同步至第二MQ集群中。
[0021]可选地,本专利技术提供的消息同步方法,在待同步消息为重试消息的情况下,基于各个重试消息的延迟等级和路由信息,将各个重试消息同步至第二MQ集群中,包括:
[0022]针对任一重试消息,根据重试消息的延迟等级、路由信息将重试消息放入第二MQ集群中与重试消息对应的消息服务器的延迟队列中;
[0023]在达到延迟队列对应的延迟时长的情况下,将重试消息发送到重试消息对应的消息服务器的重试队列中。
[0024]可选地,本专利技术提供的消息同步方法,在待同步消息为延迟消息的情况下,基于消息主题的路由信息,将各个待同步消息同步至第二MQ集群中之前,还包括:
[0025]基于各个延迟消息的存储时间戳以及在第一MQ集群的延迟等级,确定各个延迟消息的剩余投递时长;
[0026]基于各个延迟消息的剩余投递时长,确定各个延迟消息在第二MQ集群的延迟等级;
[0027]基于消息主题的路由信息,将各个待同步消息同步至第二MQ集群中,包括:
[0028]针对任一延迟消息,基于延迟消息与延迟消息在第二MQ集群中的消息服务器的对应关系,确定延迟消息所在的消息服务器;
[0029]基于延迟消息的延迟等级,以及延迟消息所在的消息服务器,确定延迟消息在消息服务器的消息队列,并将延迟消息同步至与消息服务器对应的消息队列中。
[0030]可选地,本专利技术提供的消息同步方法,在待同步消息为延迟消息的情况下,还包括:
[0031]基于延迟消息对应的延迟等级,确定延迟消息的延迟时长;
[0032]基于延迟时长、延迟消息的存储时间戳,确定原投递时间戳;
[0033]基于原投递时间戳以及当前时间,确定剩余投递时长。
[0034]可选地,本专利技术提供的消息同步方法,在待同步消息为延迟消息的情况下,基于各个延迟消息的剩余投递时长,确定各个延迟消息在第二MQ集群的延迟等级之前,还包括:
[0035]基于剩余投递时长以及预设阈值,确定是否同步延迟消息;
[0036]若是,则执行基于各个延迟消息的剩余投递时长,确定各个延迟消息在第二MQ集群的延迟等级的步骤;
[0037]若否,则无需同步延迟消息。
[0038]可选地,本专利技术提供的消息同步方法,方法还包括:
[0039]获取消息同步任务中订阅组订阅消息主题的至少一个消息的消费进度;
[0040]确定各个消息在第二MQ集群中的消息队列的位置;
[0041]基于各个消息在第二MQ集群中的消息队列的位置,对各个消息的消费进度进行更新。
[0042]可选地,本专利技术提供的消息同步方法,方法还包括:
[0043]将路由信息同步至第二MQ集群中消息主题对应的名称服务器中。
[0044]另一方面,本专利技术还提供一种消息同步装置,应用于异地灾备系统,异地灾备系统包括第一消息队列MQ集群、处理组件、第二MQ集群,装置包括:
[0045]获取模块,用于通过处理组件获取消息同步任务,并获取第一MQ集群中消息同步任务对应的至少一个待同步消息;
[0046]处理模块,用于通过处理组件基于消息同步任务,确定消息同步任务对应的消息主题的路由信息;路由信息包括:消息主题与用于存储消息主题的消息的至少一个消息服务器的对应关系,以及与消息服务器中消息队列的对应关系;
[0047]处理模块,还用于通过处理组件基于消息主题的路由信息,将各个待同步消息同步至第二MQ集群中。
[0048]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息同步方法,其特征在于,应用于异地灾备系统,所述异地灾备系统包括第一消息队列MQ集群、处理组件、第二MQ集群,所述方法包括:所述处理组件获取消息同步任务,并获取第一MQ集群中所述消息同步任务对应的至少一个待同步消息;所述处理组件基于消息同步任务,确定所述消息同步任务对应的消息主题的路由信息;所述路由信息包括:所述消息主题与用于存储所述消息主题的消息的至少一个消息服务器的对应关系,以及与所述消息服务器中消息队列的对应关系;所述处理组件基于所述消息主题的路由信息,将各个所述待同步消息同步至第二MQ集群中。2.根据权利要求1所述的消息同步方法,其特征在于,所述待同步消息为普通消息,所述基于所述消息主题的路由信息,将各个所述待同步消息同步至第二MQ集群中,包括:针对任一所述普通消息,基于所述普通消息与消息服务器的对应关系,以及与所述消息服务器中消息队列的对应关系,将所述普通消息同步至与所述普通消息对应的消息服务器的消息队列中。3.根据权利要求2所述的消息同步方法,其特征在于,所述同步消息为死信消息,所述基于所述消息主题的路由信息,将各个所述待同步消息同步至第二MQ集群中之前,还包括:获取所述死信消息在所述第二MQ集群中的操作权限;将所述操作权限修改为读写权限。4.根据权利要求1所述的消息同步方法,其特征在于,在所述待同步消息为重试消息的情况下,所述处理组件基于消息同步任务,确定所述消息同步任务对应的消息主题的路由信息,包括:基于各个所述重试消息的重试次数,得到各个所述重试消息的延迟等级;基于各个所述重试消息的延迟等级和所述消息同步任务,确定所述路由信息;所述方法还包括:将所述各个所述重试消息的延迟等级和所述路由信息发送至第二MQ集群;基于所述消息主题的路由信息,将各个所述待同步消息同步至第二MQ集群中,包括:基于各个所述重试消息的延迟等级和所述路由信息将各个所述重试消息同步至第二MQ集群中。5.根据权利要求4所述的消息同步方法,其特征在于,所述基于各个所述重试消息的延迟等级和所述路由信息,将各个所述重试消息同步至所述第二MQ集群中,包括:针对任一所述重试消息,根据所述重试消息的延迟等级、所述路由信息将所述重试消息放入所述第二MQ集群中与所述重试消息对应的消息服务器的延迟队列中;在达到所述延迟队列对应的延迟时长的情况下,将所述重试消息发送到所述重试消息对应的消息服务器的重试队列中。6.根据权利要求1所述的消息同步方法,其特征在于,在所述待同步消息为延迟消息的情况下,所述基于所述消息主题的路由信息,将各个所述待同步消息同步至第二MQ集群中之前,还包括:基于各个所述延迟消息的存储时间戳以及在所述第一MQ集群的延迟等级,确定各个所述延迟消息的剩余投递时长;
基于各个所述延迟消息的剩余投递时长,确定各个所述延迟消息在所述第二MQ集群的延迟等级;所述基于所述消息主题的路由信息,将各个所述待同步消息同步至第二MQ集群中...

【专利技术属性】
技术研发人员:赵鑫王想林郭建军李超鹏
申请(专利权)人:北京宝兰德软件股份有限公司
类型:发明
国别省市:

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

1