本申请涉及软件开发,具体而言,涉及一种跨集群消息队列同步方法及装置。
背景技术:
1、消息队列是一种异步通讯的中间件。跨集群消息同步可以为消息队列集群带来更大的灵活性,例如将2个集群的消息数据合并,跨集群实现双写,可用于异地双活等业务场景。
2、一个消息队列产品通常会自带主从复制的功能,以实现容灾特性。然而自带的主从复制功能一般会根据自身数据的结构进行特殊的设计,无法为外系统所用,例如rocketmq的主从复制就是直接将存储的数据以二进制方式同步到从节点,这样的数据是无法跨集群使用的,因为目标集群自身也会产生数据,两份数据是无法直接合并存储。如果以消费者身份抽取数据,则又无法及时获得完整的消息数据例如延时消息。
3、综上,现有技术中存在消息队列同步时,存在同步难度大的问题。
技术实现思路
1、本申请的目的在于提供一种跨集群消息队列同步方法及相关装置,以解决现有技术中存在消息队列同步时,存在同步难度大的问题。
2、为了实现上述目的,本申请实施例采用的技术方案如下:
3、第一方面,本申请实施例提供了一种跨集群消息队列同步方法,所述方法包括:
4、利用从节点获取源消息队列集群的数据信息;
5、从所述数据信息中抽取消息数据和消费点位数据;
6、将所述消息数据和消费点位数据序列化为标准消息事件;
7、将所述标准消息事件传送至目标消息队列集群;其中,所述目标消息队列集群以消息生产者的身份将数据重新写入目标消息队列集群。
8、可选地,所述方法还包括:
9、记录已同步的源数据偏移量,以实现断点续传。
10、可选地,将所述标准消息事件传送至目标消息队列集群的步骤包括:
11、将标准消息事件追加至所述目标消息队列集群的尾部;
12、当发生数据同步服务重启时,所述标消息队列集群从数据尾部获得偏移量,并按该偏移量从源集群中抽取数据进行续传。
13、可选地,所述方法还包括:
14、当处于跨集群消息队列同步状态时,将数据偏移量分离存储。
15、可选地,所述方法还包括:
16、先存储消息数据、后写入源数据偏移量;
17、在断点续传前先按所记录的目标数据偏移量开始获得所有已写入的消息数据集合,并按源数据偏移量从源集群开始同步数据;
18、剔除存在于已写入的消息数据集合的消息数据。
19、可选地,所述方法还包括:
20、利用从节点同步数据。
21、第二方面,本申请实施例还提供了一种跨集群消息队列同步装置,所述装置包括:
22、信息接收模块,用于利用从节点获取源消息队列集群的数据信息;
23、信息处理模块,用于从所述数据信息中抽取消息数据和消费点位数据;
24、信息处理模块,还用于将所述消息数据和消费点位数据序列化为标准消息事件;
25、信息发送模块,用于将所述标准消息事件传送至目标消息队列集群;其中,所述目标消息队列集群以消息生产者的身份将数据重新写入目标消息队列集群。
26、可选地,信息处理模块还用于记录已同步的源数据偏移量,以实现断点续传。
27、第三方面,本申请实施例还提供了一种电子设备,包括:
28、存储器,用于存储一个或多个程序;
29、处理器;
30、当所述一个或多个程序被所述处理器执行时,实现上述的方法。
31、第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的方法。
32、相对于现有技术,本申请具有以下有益效果:
33、本申请提供了一种跨集群消息队列同步方法及相关装置,首先利用从节点获取源消息队列集群的数据信息,再从数据信息中抽取消息数据和消费点位数据,接着将消息数据和消费点位数据序列化为标准消息事件,最后将标准消息事件传送至目标消息队列集群,其中,目标消息队列集群以消息生产者的身份将数据重新写入目标消息队列集群。由于本申请以从节点身份从源集群抽取数据,在目标集群实施消息数据与数据偏移量分离存储,保证消息完整性的前提下实现跨集群消息数据合并,消息同步的稳定性更强。
34、为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
1.一种跨集群消息队列同步方法,其特征在于,所述方法包括:
2.如权利要求1所述的跨集群消息队列同步方法,其特征在于,所述方法还包括:
3.如权利要求1所述的跨集群消息队列同步方法,其特征在于,将所述标准消息事件传送至目标消息队列集群的步骤包括:
4.如权利要求1所述的跨集群消息队列同步方法,其特征在于,所述方法还包括:
5.如权利要求1所述的跨集群消息队列同步方法,其特征在于,所述方法还包括:
6.如权利要求1所述的跨集群消息队列同步方法,其特征在于,所述方法还包括:
7.一种跨集群消息队列同步装置,其特征在于,所述装置包括:
8.如权利要求7所述的跨集群消息队列同步装置,其特征在于,信息处理模块还用于记录已同步的源数据偏移量,以实现断点续传。
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。