CN117591318A - 一种基于Kafka的延时队列实现方法 - Google Patents

一种基于Kafka的延时队列实现方法 Download PDF

Info

Publication number
CN117591318A
CN117591318A CN202311750365.1A CN202311750365A CN117591318A CN 117591318 A CN117591318 A CN 117591318A CN 202311750365 A CN202311750365 A CN 202311750365A CN 117591318 A CN117591318 A CN 117591318A
Authority
CN
China
Prior art keywords
message
consumption
intermediate server
kafka
delay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311750365.1A
Other languages
English (en)
Inventor
李锡畅
王刚
丘凌
陈天明
曹航瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Digital Life Technology Co Ltd
Original Assignee
Tianyi Digital Life Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianyi Digital Life Technology Co Ltd filed Critical Tianyi Digital Life Technology Co Ltd
Priority to CN202311750365.1A priority Critical patent/CN117591318A/zh
Publication of CN117591318A publication Critical patent/CN117591318A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种基于Kafka的延时队列实现方法,包括:在基于Kafka的消息队列系统中建立中间服务器,通过中间服务器接收延迟消息;通过中间服务器判断延迟消息的过期时间是否小于消费列表中的最大过期时间,若是,则更新消费列表;通过中间服务器轮询消费消费列表中的延迟消息,判断当前消息是否已过期,若是,则将当前消息进行投递,若否,则等待下次消费该当前消息。本申请实现了在接入Kafka消息队列的情况下可以使用延时消息队列。

Description

一种基于Kafka的延时队列实现方法
技术领域
本申请涉及消息处理技术领域,尤其涉及一种基于Kafka的延时队列实现方法。
背景技术
延时队列是软件开发中一种的常见技术,它在很多不同的应用场景中都能发挥重要作用。在常见的消息队列系统中,Kafka并不支持延迟队列,现有方案通常是采用其它消息队列来实现的,例如RocketMQ、RabbitMQ等。以RocketMQ为例,在使用RocketMQ的延迟队列时一般要经过4个步骤,即创建延迟队列、存储延迟消息、定时扫描延迟队列和消费延迟消息。RocketMQ延迟队列的实现原理比较简单,通过设置消息主题的扩展属性和使用定时任务来实现延迟消息的存储和转移,其中不免存在一些限制和弊端,如不精确的延迟时间、定时任务开销等等;而且延迟级别比较单一,只支持预定义的延迟级别。而对于已经使用Kafka作为消息队列的系统,更换其他消息队列的成本较高。
发明内容
本申请提供了一种基于Kafka的延时队列实现方法,用于在接入Kafka消息队列的情况下实现可以使用延时消息队列。
有鉴于此,本申请第一方面提供了一种基于Kafka的延时队列实现方法,包括:
在基于Kafka的消息队列系统中建立中间服务器,通过所述中间服务器接收延迟消息;
通过所述中间服务器判断所述延迟消息的过期时间是否小于消费列表中的最大过期时间,若是,则更新所述消费列表;
通过所述中间服务器轮询消费所述消费列表中的延迟消息,判断当前消息是否已过期,若是,则将当前消息进行投递,若否,则等待下次消费该当前消息。
可选的,所述方法还包括:
在所述中间服务器中设置用于记录当前消费位置的消费位置变量;
所述通过所述中间服务器轮询消费所述消费列表中的延迟消息,判断当前消息是否已过期,包括:
通过所述中间服务器获取所述消费位置变量的值,从所述消费列表中取出下一条消息进行消费;
通过所述中间服务器判断当前消息的过期时间是否大于所述消费位置变量的值,若是,则判定当前消息未过期,若否,则判定当前消息已过期。
可选的,所述方法还包括:
在当前消息被成功消费后,通过所述中间服务器根据当前消息的过期时间更新所述消费位置变量的值。
可选的,所述消费位置变量的初始值为零或第一条消息的过期时间。
可选的,所述方法还包括:
通过所述中间服务器将所述消息队列和所述消费位置变量的值存储到持久化存储中。
可选的,所述方法还包括:
在所述中间服务器异常中断后重新启动时,从持久化存储中获取最新保存的所述消费位置变量的值;
使用获取到的所述消费位置变量的值为起点,从持久化存储中获取所述消费列表。
可选的,所述方法还包括:
在成功获取到所述消费列表后,通过中间服务将所述消费位置变量的值更新为最新获取到的消费列表中的最大过期时间。
可选的,所述方法还包括:
当所述消息列表中的消息全部被消费完毕后,通过所述中间服务器从持久化存储中获取预置数量的新的消费列表。
可选的,所述方法还包括:
通过所述中间服务器将接收的延迟消息进行持久化存储。
可选的,所述方法还包括:
通过所述中间服务器将所述消费列表保存于中间服务器的内存中。
从以上技术方案可以看出,本申请具有以下优点:
本申请提供了一种基于Kafka的延时队列实现方法,包括:在基于Kafka的消息队列系统中建立中间服务器,通过中间服务器接收延迟消息;通过中间服务器判断延迟消息的过期时间是否小于消费列表中的最大过期时间,若是,则更新消费列表;通过中间服务器轮询消费消费列表中的延迟消息,判断当前消息是否已过期,若是,则将当前消息进行投递,若否,则等待下次消费该当前消息。
本申请中,在基于Kafka的消息队列系统中建立中间服务器用于处理延迟消息,通过判断过期时间和更新消费列表,保证消息的及时投递,实现了在Kafka的消息队列系统中使用延时消息队列,不需要更换消息队列系统,对已有的消息队列系统改造较少。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种基于Kafka的延时队列实现方法的一个流程示意图;
图2为本申请实施例提供的一种基于Kafka的延时队列实现方法的另一个流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
消息队列是一种在分布式系统中用于解耦和异步处理消息的通信模式。它是一种存储和传递消息的中间件,由多个生产者将消息发送到队列中,并由多个消费者从队列中获取消息进行处理。延时队列是一种特殊类型的消息队列,用于在一定的延时时间之后才将消息发送给消费者进行处理。它可以实现在预定时间点触发事件或延迟处理任务的功能。
Kafka是一种高性能、分布式的消息队列系统。其设计目标是为了解决大规模实时数据流的处理需求,它被广泛应用于日志收集、事件驱动架构、实时处理等场景。其高吞吐量、可靠性和可扩展性使得Kafka成为处理大数据流的重要组件,但其不支持发送延迟消息。而RocketMQ是一种开源的分布式消息中间件。它是一个高性能、高可靠性、可伸缩的消息队列系统,用于实现可靠的异步通信和数据传输。RocketMQ在分布式系统中被广泛应用于异步消息通信、解耦系统组件、削峰填谷、日志收集、事件驱动等场景。它具有高性能、高可靠性和可伸缩性的特点,适用于大规模分布式系统中的消息传递和数据传输需求。其支持发送延迟消息。
RocketMQ提供了不同的延迟级别,每个级别对应一个固定的时间窗口,如1s、5s、10s等。在发送消息时,可以将消息发送到指定延迟级别对应的主题中。然后RocketMQ就会将这些消息存储在相应主题的队列中,每个队列都有一个消息消费时间点,即消息的预计到达时间。然后RocketMQ内部维护的定时器就会定期扫描所有延迟队列中的消息,检查消息的预计到达时间是否早于当前时间,如果是,则将消息从延迟队列中移动到对应的正常队列中,等待消费者订阅并消费这些消息。一旦消息被移到正常队列中,消费者可以按照常规方式订阅并消费这些消息。RocketMQ延迟队列的实现原理比较简单,通过设置消息主题的扩展属性和使用定时任务来实现延迟消息的存储和转移,其中不免存在一些限制和弊端,如不精确的延迟时间、定时任务开销等等;而且延迟级别比较单一,只支持预定义的延迟级别。
延时队列是软件开发中一种常见且重要的技术。然而,在主流的消息队列系统中,Kafka并不原生支持延迟队列功能,而支持延迟队列的RocketMq却存在时间精度的限制,不支持任意时间段的延时,且有延时长度的限制。此外,对于已经使用Kafka作为消息队列的系统,更换其他消息队列的成本较高。为了改善这些问题,本申请实施例提供了一种基于Kafka的延时队列实现方法,使得在接入Kafka消息队列的情况下也可使用延时消息队列。该方法对已有系统的改造较少,成本较低,能够实现任意时间段的延时,且没有延时长度的限制,具有稳定可靠的特点。
为了便于理解,请参阅图1,本申请实施例提供了一种基于Kafka的延时队列实现方法,包括:
步骤101、在基于Kafka的消息队列系统中建立中间服务器,通过中间服务器接收延迟消息。
在基于Kafka的消息队列系统中建立一个中间服务器,用于处理延迟消息。中间服务器接收延迟消息,并将延迟消息进行持久化存储,可以选择使用数据库等方式进行存储,以确保消息的安全性和可靠性。
步骤102、通过中间服务器判断延迟消息的过期时间是否小于消费列表中的最大过期时间,若是,则更新消费列表。
中间服务器会判断延迟消息的过期时间是否早于消费列表中的最大过期时间,若是,则更新消费列表。
步骤103、通过中间服务器轮询消费消费列表中的延迟消息,判断当前消息是否已过期,若是,则将当前消息进行投递,若否,则等待下次消费该当前消息。
中间服务器会轮询消费消费列表中的消息,判断当前消息是否已过期,若是,则将当前消息进行投递,若否,则等待下次消费该当前消息。可以通过判断取出的当前消息的过期时间是否小于当前时间来确定当前消息是否过期,若当前消息的过期时间小于当前时间,则说明当前消息已过期,若当前消息的过期时间大于或等于当前时间,则说明当前消息未过期。
步骤104、当消息列表中的消息全部被消费完毕后,通过中间服务器从持久化存储中获取预置数量的新的消费列表。
当消息列表中的消息全部被消费完毕后,中间服务器会从持久化存储中获取新的消费列表,以供下一轮消费使用。
本申请实施例中,通过建立的中间服务器能够有效地处理延迟消息,通过判断过期时间和更新消费列表,保证消息的及时投递,可以支持任意时间段的延时,没有延时长度限制,实现了在Kafka的消息队列系统中使用延时消息队列,不需要更换消息队列系统,对已有的消息队列系统改造较少。
以上为本申请提供的一种基于Kafka的延时队列实现方法的一个实施例,以下为本申请提供的一种基于Kafka的延时队列实现方法的另一个实施例。
请参考图2,本申请实施例提供的一种基于Kafka的延时队列实现方法,包括:
步骤201、在基于Kafka的消息队列系统中建立中间服务器,通过中间服务器接收延迟消息。
在基于Kafka的消息队列系统中建立一个中间服务器,用于处理延迟消息。中间服务器接收延迟消息,并将延迟消息进行持久化存储,可以选择使用数据库等方式进行存储,以确保消息的安全性和可靠性。
步骤202、通过中间服务器判断延迟消息的过期时间是否小于消费列表中的最大过期时间,若是,则更新消费列表。
中间服务器会判断延迟消息的过期时间是否早于消费列表中的最大过期时间,若是,则更新消费列表。
进一步,中间服务器将消费列表保存在中间服务器的内存中,以提高访问效率和响应速度。
步骤203、通过中间服务器轮询消费消费列表中的延迟消息,判断当前消息是否已过期,若是,则将当前消息进行投递,若否,则等待下次消费该当前消息。
中间服务器会轮询消费消费列表中的消息,判断当前消息是否已过期,若是,则将当前消息进行投递,若否,则等待下次消费该当前消息。可以通过判断取出的当前消息的过期时间是否小于当前时间来确定当前消息是否过期,若当前消息的过期时间小于当前时间,则说明当前消息已过期,若当前消息的过期时间大于或等于当前时间,则说明当前消息未过期。
进一步,为了确保消息的可靠性,本申请实施例引入了一个消费位置变量,其值与延迟消息的过期时间相关。
具体的,在中间服务器中设置用于记录当前消费位置的消费位置变量;
相应的,通过中间服务器轮询消费消费列表中的延迟消息,判断当前消息是否已过期的具体过程可以为:
通过中间服务器获取消费位置变量的值,从消费列表中取出下一条消息进行消费;
通过中间服务器判断当前消息的过期时间是否大于消费位置变量的值,若是,则判定当前消息未过期,若否,则判定当前消息已过期。
本申请实施例中,在中间服务器中新增一个用于记录当前消费位置的消费位置变量。消费位置变量的值与当前正在消费的消息的过期时间相关。初始时,将消费位置变量的初始值设置为0或者第一条消息的过期时间,表示从第一条消息开始消费。
当中间服务器轮询消费消息时,首先获取到消费位置变量的值,然后从消费列表中取出下一条消息进行消费。在消费当前消息时,中间服务器会将当前消息的过期时间与消费位置变量的值进行比较,如果当前消息的过期时间小于或等于消费位置变量的值,表示当前消息已经过期,可以进行投递或其他处理。如果当前消息的过期时间大于消费位置变量的值,表示当前消息未过期,则等待下次被消费。
例如,假设消费位置变量的值为timestamp,表示当前消费的位置。当从消费列表中取出一条消息进行消费时,假设该消息的过期时间为expire_time。则可以进行如下判断:
ifexpire_time<=timestamp:
#消息已过期,进行投递或其他处理
else:
#消息未过期,等待下次消费
这样,通过将当前消息的过期时间expire_time与消费位置变量的值timestamp进行比较,就可以判断消息是否已经过期。
在当前消息被成功消费后,中间服务器会更新消费位置变量的值为当前消息的过期时间,即timestamp=expire_time。这样,在下一次轮询消费时,将从下一个过期时间大于消费位置变量的消息开始消费,确保不会重复消费已经处理过的消息。
通过引入消费位置变量,中间服务器能够在消费消息的过程中记录消费位置,保证消息的有序消费和可靠性。同时,结合过期时间的判断,可以及时处理已经过期的消息,提高系统的效率和可靠性。
进一步,为了保证数据的安全性,在中间服务器异常中断后重新启动时,中间服务器需要恢复数据。在中间服务器异常中断前,将消费位置变量的值以及消费列表等相关数据存储到持久化存储中,以便后续恢复。
在中间服务器异常中断后重新启动时,从持久化存储中获取最新保存的消费位置变量的值;使用获取到的消费位置变量的值为起点,从持久化存储中获取消费列表。
为了提高内存使用率,中间服务器可以设置限制条件,限制每次从持久化存储中获取消费列表的数量,避免一次性加载过多的数据,即中间服务器每次从持久化存储中获取预置数量的消费列表,确保内存的有效利用。
在成功获取到消费列表后,中间服务器会将消费位置变量的值更新为最新获取到的消费列表中的最大过期时间,以便下一轮消息消费时使用。
通过以上改进,中间服务器能够在服务异常中断后恢复数据,通过从持久化存储中获取上次消费位置和相应的消费列表,确保在重启后能够继续从上一次中断的位置继续消费消息。同时,通过限制获取数量和更新消费位置变量的值,保证了内存的有效利用和消息消费的正确性。
步骤204、当消息列表中的消息全部被消费完毕后,通过中间服务器从持久化存储中获取预置数量的新的消费列表。
当消息列表中的消息全部被消费完毕后,中间服务器会从持久化存储中获取新的消费列表,并加载到内存中供下一轮消费使用。
通过以上的改进,中间服务器能够有效地处理延迟消息。延迟消息在接收后进行持久化存储,并通过判断过期时间和更新消费列表,保证消息的及时投递,可以支持任意时间段的延时,没有延时长度限制;同时,将消费列表保存在内存中,轮询消费并重新加载消费列表,提高了消费效率和内存利用率。
本申请实施例中,通过引入消费位置变量记录消息的消费位置,能够确保消息的有序消费,保证消息按照正确的顺序被处理;在服务异常中断后重新启动时,可以从上一次消费的位置重新开始消费,避免重复消费已经处理过的消息;通过将消息存储到持久化存储中,实现消息的持久性保存,即使系统异常终止或重启,也能保留之前的消费状态和数据;利用内存进行消息的临时存储,能够加快读写速度,提高系统的响应性能和吞吐量。
本申请实施例中的基于Kafka的延时队列实现方法,可用于电子商务的订购系统中,延时队列可以用于处理订单状态的更新和发货等操作。当用户下单后,订单可以被发送到延时队列,并设置一定的延时时间。在延时时间到达之后,订单会被触发,进行后续的处理,例如更新订单状态、通知物流系统等。也可以用于高并发系统的限流和流量控制等场景。例如,在高并发请求的情况下,可以将请求添加到延时队列中,并根据系统的处理能力进行调度和控制,以避免系统负载过高或服务崩溃。还可以用于任务调度系统中,以实现延迟执行任务或定时任务。例如,在一个任务调度系统中,可以将待执行的任务添加到延时队列中,并设置任务的延时时间。当延时时间到达之后,任务会被触发执行,从而实现任务的延迟或定时调度。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以通过一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:RandomAccess Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种基于Kafka的延时队列实现方法,其特征在于,包括:
在基于Kafka的消息队列系统中建立中间服务器,通过所述中间服务器接收延迟消息;
通过所述中间服务器判断所述延迟消息的过期时间是否小于消费列表中的最大过期时间,若是,则更新所述消费列表;
通过所述中间服务器轮询消费所述消费列表中的延迟消息,判断当前消息是否已过期,若是,则将当前消息进行投递,若否,则等待下次消费该当前消息。
2.根据权利要求1所述的基于Kafka的延时队列实现方法,其特征在于,所述方法还包括:
在所述中间服务器中设置用于记录当前消费位置的消费位置变量;
所述通过所述中间服务器轮询消费所述消费列表中的延迟消息,判断当前消息是否已过期,包括:
通过所述中间服务器获取所述消费位置变量的值,从所述消费列表中取出下一条消息进行消费;
通过所述中间服务器判断当前消息的过期时间是否大于所述消费位置变量的值,若是,则判定当前消息未过期,若否,则判定当前消息已过期。
3.根据权利要求2所述的基于Kafka的延时队列实现方法,其特征在于,所述方法还包括:
在当前消息被成功消费后,通过所述中间服务器根据当前消息的过期时间更新所述消费位置变量的值。
4.根据权利要求2所述的基于Kafka的延时队列实现方法,其特征在于,所述消费位置变量的初始值为零或第一条消息的过期时间。
5.根据权利要求2所述的基于Kafka的延时队列实现方法,其特征在于,所述方法还包括:
通过所述中间服务器将所述消息队列和所述消费位置变量的值存储到持久化存储中。
6.根据权利要求5所述的基于Kafka的延时队列实现方法,其特征在于,所述方法还包括:
在所述中间服务器异常中断后重新启动时,从持久化存储中获取最新保存的所述消费位置变量的值;
使用获取到的所述消费位置变量的值为起点,从持久化存储中获取所述消费列表。
7.根据权利要求6所述的基于Kafka的延时队列实现方法,其特征在于,所述方法还包括:
在成功获取到所述消费列表后,通过中间服务将所述消费位置变量的值更新为最新获取到的消费列表中的最大过期时间。
8.根据权利要求5所述的基于Kafka的延时队列实现方法,其特征在于,所述方法还包括:
当所述消息列表中的消息全部被消费完毕后,通过所述中间服务器从持久化存储中获取预置数量的新的消费列表。
9.根据权利要求1所述的基于Kafka的延时队列实现方法,其特征在于,所述方法还包括:
通过所述中间服务器将接收的延迟消息进行持久化存储。
10.根据权利要求1所述的基于Kafka的延时队列实现方法,其特征在于,所述方法还包括:
通过所述中间服务器将所述消费列表保存于中间服务器的内存中。
CN202311750365.1A 2023-12-19 2023-12-19 一种基于Kafka的延时队列实现方法 Pending CN117591318A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311750365.1A CN117591318A (zh) 2023-12-19 2023-12-19 一种基于Kafka的延时队列实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311750365.1A CN117591318A (zh) 2023-12-19 2023-12-19 一种基于Kafka的延时队列实现方法

Publications (1)

Publication Number Publication Date
CN117591318A true CN117591318A (zh) 2024-02-23

Family

ID=89910000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311750365.1A Pending CN117591318A (zh) 2023-12-19 2023-12-19 一种基于Kafka的延时队列实现方法

Country Status (1)

Country Link
CN (1) CN117591318A (zh)

Similar Documents

Publication Publication Date Title
CN107391271B (zh) 一种基于消息队列系统的延时任务触发方法和装置
CN108449410B (zh) 一种云平台中消息管理方法、系统及相关装置
CN110222091B (zh) 一种海量数据实时统计分析方法
CN113452774B (zh) 消息推送方法、装置、设备及存储介质
WO2021104178A1 (zh) 一种动态消息推送方法、系统和汽车诊断服务器
US20170329655A1 (en) Method and apparatus of unloading out of memory processing flow to user space
US20100318663A1 (en) Optimizing mobile device synchronization with multiple data sources
CN111555957A (zh) 一种基于Kafka的同步消息服务系统及实现方法
CN111510469B (zh) 一种消息处理方法和装置
CN112367149B (zh) 消息获取方法、装置、设备及存储介质
CN111949497A (zh) 消息队列系统以及基于消息队列系统的消息处理方法
WO2022211724A1 (en) Method and apparatus for transmitting messages, and device and storage medium thereof
CN114827049A (zh) 一种基于kafka的堆积数据消费方法、终端设备及存储介质
CN109388501B (zh) 基于人脸识别请求的通信匹配方法、装置、设备及介质
CN110213213B (zh) 应用的定时任务处理方法及系统
CN112118297B (zh) 延时消息的控制方法、装置、设备及存储介质
CN111475315B (zh) 服务器及订阅通知推送控制、执行方法
CN106550021B (zh) 推送消息的推送方法及装置
CN111984198A (zh) 消息队列实现方法、装置及电子设备
EP3687133B1 (en) System and method for synchronization of media objects between devices operating in a multiroom system
CN117591318A (zh) 一种基于Kafka的延时队列实现方法
CN111143053A (zh) 一种定时任务的调度方法、服务器以及存储装置
CN115022263A (zh) 一种延时消息的投递方法、装置、设备及存储介质
US20030023775A1 (en) Efficient notification of multiple message completions in message passing multi-node data processing systems
CN112181671B (zh) 一种延时消息处理的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination