本申请涉及消息队列,具体涉及一种基于租户隔离的消息延迟消费方法及相关产品。
背景技术:
1、常规的消息队列模型中,消息是即发即收的,满足先进先出特性。然而,随着业务场景越来越复杂,在一些特殊的业务场景中,需要对消息进行延迟发送。即消息经过指定的延迟时间后,才能被消费端消费。例如,用户端下单后,商家端可以发送一条延迟30分钟的提醒消息给用户端,这条提醒消息会在30分钟后才推送给用户端,以提醒用户是否完成支付。
2、目前,在实现消息的延迟消费时,消息队列的服务端预先划分出多个不同的延迟级别的队列,每个延迟级别的队列对应的延迟时间不同。这样生产端在生产消息时,会根据所要延迟的时间大小,确定与该时间大小对应的延迟级别,并在延迟消息中携带该延迟级别。服务端接收到该延迟消息后,会将该延迟消息放入到对应的延迟级别的队列中,等到延迟时间到来时,将该延迟消息投递到真正的主题中,以供消费端消费,实现消息的延迟消费。
3、在实现延迟消息的延迟消费时,若某个到期时间下有很多消息要发送,则这个到期时间下的延迟消息会占据发送线程,导致后面的延迟消息不能按时发送。
技术实现思路
1、本申请实施例提供了一种基于租户隔离的消息延迟消费方法及相关产品,按照重新投递延迟消息的业务主题分配发送线程,不同业务主题下的延迟消息重新投递时不会相互干扰,实现延迟消息的按时发送。
2、第一方面,本申请实施例提供一种基于租户隔离的消息延迟消费方法,所述方法包括:
3、获取至少一个业务主题中与当前时刻对应的至少一个目标业务主题,其中,所述至少一个业务主题是基于已存储的多条第一延迟消息的业务主题确定的,每条第一延迟消息的业务主题为到期时间来临时需要将该第一延迟消息发布到该业务主题,所述至少一个目标业务主题为所述至少一个业务主题中在当前时刻下有延迟消息需要发布的业务主题;
4、为每个目标业务主题分配发送线程,得到每个目标业务主题在当前时刻下的发送线程;
5、通过每个目标业务主题在当前时刻下的发送线程,将需要发布到每个目标业务主题下的第一延迟消息发送给消息队列服务器,以将每个目标业务主题下的第一延迟消息发布到每个目标业务主题,以使消费端从每个目标业务主题消费第一延迟消息。
6、第二方面,本申请实施例提供一种延迟服务器,所述延迟服务器包括:收发单元和处理单元;
7、所述收发单元,用于获取多条第一延迟消息;
8、所述处理单元,用于存储所述多条第一延迟消息,并获取至少一个业务主题中与当前时刻对应的至少一个目标业务主题,其中,所述至少一个业务主题是基于已存储的多条第一延迟消息的业务主题确定的,每条第一延迟消息的业务主题为到期时间来临时需要将该第一延迟消息发布到该业务主题,所述至少一个目标业务主题为所述至少一个业务主题中在当前时刻下有延迟消息需要发布的业务主题。
9、第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如第一方面或第二方面所述的方法。
10、第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得计算机执行如第一方面或第二方面所述的方法。
11、第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机可操作来使计算机执行如第一方面或第二方面所述的方法。
12、实施本申请实施例,具有如下有益效果:
13、可以看出,在本申请实施例中,首先会确定存储的多条第一延迟消息需要重新投递到的至少一个业务主题,并且某些第一延迟消息的到期时间来临时,会确定这些第一延迟消息需要重新投递到至少一个业务主题中的至少一个目标业务主题,即当前时刻需要将延迟消息重新投递到哪些目标业务主题,然后基于为每个目标业务主题分配发送线程,这样每个目标业务主题都能够分配到发送线程,这样发送到不同目标业务主题的延迟消息之间就不会相互干扰,即使发送到某个目标业务主题的延迟消息非常多,也不会耽误其他延迟消息的发送,即其他延迟消息仍然能够正常按时发送,从而实现基于业务主题进行租户隔离,实现了延迟消息的按时发送。
1.一种基于租户隔离的消息延迟消费方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,
3.根据权利要求2所述的方法,其特征在于,所述确定所述多条第一延迟消息中的至少一条目标第一延迟消息,包括:
4.根据权利要求2或3所述的方法,其特征在于,所述基于至少一个索引,确定与当前时刻对应的至少一个目标业务主题,包括:
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述为每个目标业务主题分配发送线程,得到每个目标业务主题在当前时刻下的发送线程,包括:
6.根据权利要求5所述的方法,其特征在于,所述从与当前时刻对应的空闲发送线程中为每个目标业务主题分配发送线程,得到每个目标业务主题在当前时刻下的发送线程,包括:
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
8.一种延迟服务器,其特征在于,所述延迟服务器包括:收发单元和处理单元;
9.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器与所述存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-7中任一项所述的方法。