本申请涉及资源管理,尤其涉及一种消息队列迁移方法及装置。
背景技术:
1、为了实现大量繁杂的业务功能,应用系统通常将业务流程拆分成多个业务子流程,将消息队列作为中间件来实现多个子流程之间的网络通信和互相调用,从而实现多个子流程的独立运行。应用系统需要将待处理的消息所在的消息队列存储到存储介质(如硬盘)中,起到数据暂存和控制流量的作用,从而应对突发的异常情况(如断电或奔溃宕机等)。随着业务量和用户量的持续增长,应用系统还需要将待处理的消息所在的消息队列迁移到备用的存储介质中,提高应用系统的容灾能力。
2、现有技术中,消息队列的迁移的方法主要有周期性预测方案和基于时间索引的计算方案两种,由于存储介质不同,主存储介质中消息存储的位置和备存储介质中消息存储的位置存在不同,因此,上述两种方案可能遗漏部分待处理的消息或者重复处理部分待处理消息,也就不能准确地确定消息队列中的消息的位置。
技术实现思路
1、本申请提供了一种消息队列迁移方法及装置,用以提高消息的位置在消息队列迁移过程中的准确性。
2、第一方面,本申请提供了一种消息队列迁移方法。以第一设备为执行主体为例,方法包括:接收消息处理请求,消息处理请求包括第一索引,第一索引是第一消息在第一队列中的索引;获取第一对应关系,第一对应关系是消息在第一队列中的索引与消息在第二队列中的索引之间的对应关系,消息包括第一消息,第一队列是第一存储设备所存储的待处理的消息的队列,第二队列是第二存储设备所存储的待处理的消息的队列;根据第一索引和第一对应关系确定第二索引,第二索引是第一消息在第二队列中的索引;输出第二索引,第二索引用于从第二队列中获取第一消息。
3、采用以上方法,第一设备能够输出第一消息在第二队列中的索引,从而下游设备可以获得第二索引,在备集群接管服务后,消息的消费者能够在备集群中找到之前其在主集群中的消费位置,因此提高了消息的位置在消息队列迁移过程中的准确性。
4、在一种可能的设计中,所述获取第一对应关系,包括:从第一存储设备获取第一队列中的消息和消息在第一队列中的索引;向第二存储设备发送消息;从第二存储设备接收消息在第二队列中的索引。
5、在一种可能的设计中,第一设备还可以向第二存储设备发送消息在第一队列中的索引。
6、在一种可能的设计中,所述根据第一索引和第一对应关系确定第二索引,包括:按照消息在第二队列中的索引的从大到小的顺序,根据第一对应关系确定消息在第二队列中的索引对应的消息在第一队列中的索引是否为第一索引。
7、在一种可能的设计中,第一设备还可以根据第一索引和第一对应关系确定不存在第二索引;将第二队列中的索引小于第二索引的待处理的消息作为下一个需要处理的消息。
8、第二方面,通信模块,该通信模块用于:接收消息处理请求,消息处理请求包括第一索引,第一索引是第一消息在第一队列中的索引;该通信模块还用于:获取第一对应关系,第一对应关系是消息在第一队列中的索引与消息在第二队列中的索引之间的对应关系,消息包括第一消息,第一队列是第一存储设备所存储的待处理的消息的队列,第二队列是第二存储设备所存储的待处理的消息的队列;处理模块,该处理模块用于:根据第一索引和第一对应关系确定第二索引,第二索引是第一消息在第二队列中的索引;该通信模块还用于:输出第二索引,第二索引用于从第二队列中获取第一消息。
9、在一种可能的设计中,该通信模块具体用于:从第一存储设备获取第一队列中的消息和消息在第一队列中的索引;向第二存储设备发送消息;从第二存储设备接收消息在第二队列中的索引。
10、在一种可能的设计中,该通信模块还用于:向第二存储设备发送消息在第一队列中的索引。
11、在一种可能的设计中,该处理模块具体用于:按照消息在第二队列中的索引的从大到小的顺序,根据第一对应关系确定消息在第二队列中的索引对应的消息在第一队列中的索引是否为第一索引。
12、在一种可能的设计中,该处理模块还用于:根据第一索引和第一对应关系确定不存在第二索引;将第二队列中的索引小于第二索引的待处理的消息作为下一个需要处理的消息。
13、第三方面,本申请还提供了一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述第一方面及其任一可能的设计所述消息队列迁移方法的步骤。
14、第四方面,本申请还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面及其任一可能的设计所述消息队列迁移的步骤。
15、第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如第一方面及其任一可能的设计所述消息队列迁移的步骤。
16、另外,第二方面至第五方面所带来的技术效果可参见上述第一方面的描述,此处不再赘述。
1.一种消息队列迁移方法,应用于第一设备,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述获取第一对应关系,包括:
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
4.如权利要求1-3中任一所述的方法,其特征在于,所述根据所述第一索引和所述第一对应关系确定第二索引,包括:
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
6.一种消息队列迁移装置,其特征在于,所述装置包括:
7.如权利要求6所述的装置,其特征在于,所述通信模块具体用于:
8.如权利要求7所述的装置,其特征在于,所述通信模块具体用于:
9.如权利要求6-8中任一所述的装置,其特征在于,所述处理模块具体用于:
10.如权利要求9所述的装置,其特征在于,所述处理模块还用于:
11.一种电子设备,其特征在于,包括:
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如权利要求1-5中任一项所述的方法。
13.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5中任一所述方法的步骤。
