消息延迟消费方法、延迟服务器、电子设备及存储介质与流程

专利2026-03-04  11


本申请涉及消息队列,具体涉及一种消息延迟消费方法、延迟服务器、电子设备及存储介质。


背景技术:

1、消息队列作为不同系统间消息传递、解耦合的中间件获得了广泛的使用。且基于各业务线的不同需求,消息处理的灵活度、效率等越来越重要。

2、常规的消息队列模型中,消息是即发即收的,满足先进先出特性。然而,随着业务场景越来越复杂,在一些特殊的业务场景中,需要对消息进行延迟发送。即消息经过指定的延迟时间后,才能被消费端消费。例如,用户端下单后,商家端可以发送一条延迟30分钟的提醒消息给用户端,这条提醒消息会在30分钟后才推送给用户端,以提醒用户是否完成支付。

3、目前,在实现消息的延迟消费时,消息队列的服务端预先划分出多个不同的延迟级别的队列,每个延迟级别的队列对应的延迟时间不同。服务端接收到延迟消息后,会将该延迟消息放入到对应的延迟级别的队列中,等到延迟时间到来时,将该延迟消息投递到真正的主题中,以供消费端消费,实现消息的延迟消费。

4、然而,在实现延迟消息的延迟消费时,延迟消息的延迟时间是由延迟级决定的,不支持任意时间的延迟,且随着延迟消息的累积,消息队列中需要存储的数据量较大,无法支持大批量消息的延迟。


技术实现思路

1、本申请实施例提供了一种消息延迟消费方法、延迟服务器、电子设备及存储介质,可支持任意时间的延迟,且将延迟消息的键值分离存储,支持大批量消息的延迟。

2、第一方面,本申请实施例提供一种消息延迟消费方法,所述方法包括:

3、从目标延迟主题消费第一延迟消息,其中,所述第一延迟消息包括第一键和消息内容,所述第一键包括所述消息内容的到期时间和目标业务主题的名称;

4、将所述消息内容存储到本地存储空间;

5、按照所述到期时间从前往后的顺序,将所述第一键和所述消息内容对应的偏移值存储到预设数据库,其中,所述偏移值用于指示所述消息内容在所述本地存储空间中的存储位置;

6、若当前时间为所述到期时间,基于所述第一键和所述偏移值从所述存储位置读取所述消息内容,以使消费端从所述目标业务主题中消费所述消息内容。

7、第二方面,本申请实施例提供一种延迟服务器,所述延迟服务器包括:收发单元和处理单元;

8、所述收发单元,用于从目标延迟主题消费第一延迟消息,其中,所述第一延迟消息包括第一键和消息内容,所述第一键包括所述消息内容的到期时间和目标业务主题的名称;

9、所述处理单元,将所述消息内容存储到本地存储空间;

10、按照所述到期时间从前往后的顺序,将所述第一键和所述消息内容对应的偏移值存储到预设数据库,其中,所述偏移值用于指示所述消息内容在所述本地存储空间中的存储位置;

11、若当前时间为所述到期时间,基于所述第一键和所述偏移值从所述存储位置读取所述消息内容,以使消费端从所述目标业务主题中消费所述消息内容。

12、第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如第一方面所述的方法。

13、第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得计算机执行如第一方面所述的方法。

14、第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机可操作来使计算机执行如第一方面所述的方法。

15、实施本申请实施例,具有如下有益效果:

16、可以看出,在本申请实施例中,目标延迟服务器目标延迟主题中消费到第一延迟消息后,会把第一延迟消息的消息内容(消息实体)存储到本地存储空间,以及将第一延迟消息的第一键存储到预设数据库,即将延迟消息的键值分离存储。然后,在存储第一键时,按照所述到期时间从前往后的顺序,将所述第一键和所述消息内容对应的偏移值存储到预设数据库。这样目标延迟服务器就可以对预设数据库中存储的键开启定时任务,若当前时间为第一延迟消息的到期时间,目标延迟服务器就会从预设数据库中获取第一键和偏移值,并根据该第一键和偏移值从本地存储空间中读取该消息内容,再获取到消息内容后,可以将第一键和消息内容返回给消息队列服务器,消息队列服务器就会将消息内容发布到目标业务主题,消费端就可以从目标业务主题中消费该消息内容。由于延迟服务器在存储延迟消息的键时,无论延迟消息的延迟时间是多少,以及是什么时候接收到的,均会按照到期时间的先后顺序存储,从而在对延迟消息进行定时时,会按照到期时间的先后顺序进行读取,这样只要延迟消息到期就会将延迟消息取出,并发送给消息队列服务器,以将延迟消息发送到对应的业务主题,从而实现更细粒度的延迟,支持自定义时间的延迟。并且,延迟服务器在存储延迟消息的键值时,是将延迟消息的键值分离存储,而且,实现延迟消息的定时,主要依赖于延迟消息的键,而延迟消息的键的数据量是相对比较少的,能够存储大批量的延迟消息的键,以及能够对大批量的延迟消息的键执行定时任务,进而可以支持大批量消息的延迟。



技术特征:

1.一种消息延迟消费方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述本地存储空间包括多个文件夹,每个文件夹包括至少一个数据文件,每个文件夹的至少一个数据文件中存储的延迟消息的到期时间均属于与该文件夹对应的时间段;所述将所述消息内容存储到本地存储空间,包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求2或3所述的方法,其特征在于,

5.根据权利要求2-4任一项所述的方法,其特征在于,所述基于所述第一键和所述偏移值从所述存储位置读取所述消息内容,包括:

6.根据权利要求2-5任一项所述的方法,其特征在于,所述将所述第一键和所述消息内容对应的偏移值存储到预设数据库,包括:

7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:

8.一种延迟服务器,其特征在于,所述延迟服务器包括:收发单元和处理单元;

9.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器与所述存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如权利要求1-7中任一项所述的方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-7中任一项所述的方法。


技术总结
本申请实施例公开了一种消息延迟消费方法、延迟服务器、电子设备及存储介质。该方法包括:从目标延迟主题消费第一延迟消息,其中,所述第一延迟消息包括第一键和消息内容,所述第一键包括所述消息内容的到期时间和目标业务主题的名称;将所述消息内容存储到本地存储空间;按照所述到期时间从前往后的顺序,将所述第一键和所述消息内容对应的偏移值存储到预设数据库,其中,所述偏移值用于指示所述消息内容在所述本地存储空间中的存储位置;若当前时间为所述到期时间,基于所述第一键和所述偏移值从所述存储位置读取所述消息内容,以使消费端从所述目标业务主题中消费所述消息内容。

技术研发人员:李亚斌,陈旭
受保护的技术使用者:小红书科技有限公司
技术研发日:
技术公布日:2024/6/26
转载请注明原文地址:https://doc.8miu.com/read-1828441.html

最新回复(0)