用于基于消息队列处理不同大小的实时任务的设备和方法技术

技术编号:31986637 阅读:20 留言:0更新日期:2022-01-20 02:08
一种用于管理数据消息的设备包括:一个或多个生产者,其产生含有需要处理的不同大小的数据消息的数据流;一个或多个消费者,其用于处理所述数据消息;多消息队列子系统,其用于将具有不同处理持续时间的数据消息列队;速率限制器,其用于基于处理速度区分数据消息,以便在所述多消息队列子系统的一个或另一个消息队列中将所述数据消息列队;公平调度器,其被配置成根据一个或多个消费者的处理状态将所述数据消息调度到所述一个或多个消费者,以最大化所述设备的处理容量;以及任务分割器,其用于分割被认为过大的数据消息。其用于分割被认为过大的数据消息。其用于分割被认为过大的数据消息。

【技术实现步骤摘要】
【国外来华专利技术】用于基于消息队列处理不同大小的实时任务的设备和方法


[0001]本专利技术总体来说为涉及计算机数据通信和任务调度的技术,且更确切地说,涉及用于消息列队的系统和方法。更确切地说,本专利技术涉及使用消息队列处理具有不同大小的多个数据流的系统和方法。

技术介绍

[0002]近年来,社交媒体已成为广告业的重要部分。它还表现在许多业务功能中,从市场营销、客户关系管理到风险管理。随着社交媒体和其它新形式的多方通信和协作技术的普及,产生了越来越多的数据,进而需要更多处理和分析以便从中提取有用信息。这些仅是对计算资源具有越来越高的要求的几个示例性应用。包含密码应用、监测、机器学习/人工智能(AI)应用、机器人和自主装置等的其它应用也产生了巨大的数据量,并且对计算机处理能力有要求。
[0003]参照图1是一个当今的数据分析平台的示例。在此平台中,不同任务大小的社交媒体数据的多个数据流由数据处理系统处理,所述数据处理系统包括:一个或多个生产者装置(101),其用于创建数据消息且将其递送到消息队列;消息队列(102),其用于从所述生产者装置接收数据消息(103),并且将所述数据消息调度到一个或多个消费者装置;以及一个或多个消费者装置(104),其连接到消息队列以将所述数据消息作为任务进行消费和处理。
[0004]在许多应用(例如,多事务在线应用、大数据分析、密码验证、数据文件下载等)中,消息队列用于充当各种服务的中介,以负载均衡、容错和/或并行处理的目的将任务委托给多个消费者。
[0005]传统上,在此类采用消息队列的系统下,即使提交的是小任务,如果队列中在该小任务之前已经存在一些大任务,那么用户或任务所有者通常也要等待很长时间。系统很难公平地做出响应,因为不同数据流可能是动态地加入数据分析平台的,且数据大小在处理数据之前不可预测。在某些极端情形中,当开始处理巨大任务时,任务自身也会花费过多时间并且造成超时错误。同时也很难保证大量数据流的及时处理。因此,迫切地需要一种使用消息队列公平地且及时地管理和处理数据消息和任务的技术。

技术实现思路

[0006]本专利技术提供一种采用多个消息队列管理和处理数据消息的设备和方法,其具有公平消息调度机制、使用多个消息队列和可调控的消息处理速度或速率,以及消息分割功能,用以解决现有技术在使用消息队列的及时性和公平性方面的不足。
[0007]根据本专利技术的一个方面,本专利技术提供一种用于管理数据消息(或任务)的设备。所述设备包括:一个或多个生产者,其产生需要处理的不同大小的数据消息(或任务);一个或多个消费者,其用于处理数据消息(或任务);一个多消息队列子系统,其允许具有不同处理持续时间的数据消息(或任务)在其中列队;速率限制器,其基于处理速度区分数据消息(或任务),以便在多消息队列子系统的一个或另一个消息队列中将所述数据消息(或任务)列
队;公平调度器,其用于根据一个或多个消费者的处理状态将数据消息(或任务)调度到所述一个或多个消费者,以最大化设备的处理能力;以及任务分割器,其用于分割被认为过大的数据消息(或任务)。每一个数据消息(或任务)都与任务所有者相关联,任务所有者可为人类用户、例如组织的逻辑实体,或物理或逻辑计算装置。多个生产者有可能产生与同一任务所有者相关联的数据消息(或任务)。
[0008]根据一个实施例,每一个消费者都包含有速率限制器、任务分割器和用于与速率限制器和任务分割器交互的一组条件逻辑指令;其中所述交互包含接收来自速率限制器的输出,引导数据消息(或任务)进行处理、重新列队或分割,以及触发任务分割器将被认为过大的数据消息(或任务)分割成较小的子数据消息(或子任务)。
[0009]多消息队列子系统至少包括:主要消息队列;以及慢速消息队列。主要消息队列被配置成初始地将从生产者接收的所有数据消息(或任务)列队。慢速消息队列被配置成将被认为过大(如大于特定大小阈值)且被分割或具有超出特定处理速率限制的处理速率的数据消息(或任务)列队。
[0010]根据一个实施例的包含在每一消费者中的任务分割器被配置成将被认为过大的数据消息(或任务)分割成较小的子数据消息(或子任务)。随后在慢速消息队列中将这些较小的子数据消息(或子任务)重新列队。
[0011]根据一个实施例的包含在每一消费者中的速率限制器被配置成基于数目或基于处理时间来限制相应的消费者对与同一任务所有者相关联的数据消息(或任务)的处理。这是为了避免消费者被过多的从被认为过大的数据消息(或任务)中分割出来的较小的子数据消息(或子任务)过度占用,或者被过多的与同一任务所有者相关联的数据消息(或任务)过度占用,进而妨碍在消息队列中等待的与其它任务所有者相关联的其它数据消息(或任务)。速率限制器被进一步配置成通过连续地评估正处理的与任何一个特定任务所有者相关联的数据消息(或任务)的数目是否大于时间窗口内的最大数目来限制相应的消费者对数据消息(或任务)的处理。如果数据消息(或任务)的数目大于时间窗口内的最大数目,则引导其后到达的与该任务所有者相关联的数据消息(或任务)到慢速消息队列中。
[0012]公平调度器被配置成根据一个或多个消费者的处理状态将数据消息(或任务)调度到所述一个或多个消费者,以最大化所有消费者的总处理能力。
附图说明
[0013]本专利技术的实施例在下文中有更详细的描述,其中相关的图示有:
[0014]图1描绘了采用消息队列的计算平台的一个示例的逻辑结构框图;
[0015]图2描绘了根据本专利技术的各种实施例的用于管理数据消息的设备的逻辑结构框图;
[0016]图3描绘了根据本专利技术的一个实施例,对数据消息的处理进行速率限制评估的方法的流程图;以及
[0017]图4描绘了根据本专利技术的各种实施例的用于管理数据消息的方法的流程图。
具体实施方式
[0018]以下描述阐述了用于在消息队列中管理数据消息的设备和方法的优选案例。所属
领域的技术人员将很显而易见地能够在不脱离本专利技术的范围和精神的情况下做出包含添加和/或替代在内的修改。特定细节可以省略,目的为避免使本
技术实现思路
模糊不清;然而,编写本公开是为了使所属领域的技术人员能够在不进行过度实验的情况下实践本文中的教示。
[0019]参照图2。根据本专利技术的一个方面,本专利技术提供一种用于管理数据消息(或任务)的设备。所述设备包括:一个或多个生产者(201),其产生需要处理的不同大小的数据消息(或任务);一个或多个消费者(202),其用于处理数据消息(或任务);多消息队列子系统(203),其用于将具有不同处理持续时间的数据消息(或任务)列队;速率限制器(204),其用于基于处理速度区分数据消息(或任务),以便在多消息队列子系统的一个或另一个消息队列中将所述数据消息(或任务)列队;公平调度器(205),其用于根据一个或多个消费者的处理状态将数据消息(或任务)调度到所述一个或多个消费者,以最大化设备的处理能力;以及任务分割器(206),其用于分割被认为过大的数据消息(或任务)。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于利用消息队列管理和处理数据消息的计算机实施方法,其特征在于,包括:通过多消息队列子系统从生产者接收与任务所有者相关联的数据消息;通过所述多消息队列子系统初始地在主要消息队列中将所述数据消息列队;通过所述多消息队列子系统检测多个消费者中的每一个的可用性状态,其中基于消费者可用性将一消费者选择为处理消费者接收数据消息以进行处理;通过所述多消息队列子系统调度待处理数据消息到所述消费者,其中所述待处理数据消息位于所述主要消息队列或慢速消息队列的队列头部处;通过速率限制器接收所述待处理数据消息;通过所述速率限制器评估是否达到所述待处理数据消息的速率限制;如果尚未达到所述速率限制,则确定所述待处理数据消息的大小;如果所述大小不超出可配置预定义大小阈值,则引导所述数据消息供所述处理消费者处理;否则如果所述大小超出所述大小阈值,则将所述待处理数据消息引导到任务分割器;如果所述待处理数据消息能够被分割,则通过所述任务分割器将所述待处理数据消息分割成多个子数据消息,且在所述慢速消息队列中将所述子数据消息重新列队;否则如果所述待处理数据消息无法被分割,且如果所述待处理数据消息的所述大小不超出大小上限,则在慢速任务模式下由所述处理消费者处理所述待处理数据消息;否则如果所述待处理数据消息无法被分割,且如果所述待处理数据消息的所述大小超出所述大小上限,则从所述多消息队列子系统移除所述待处理数据消息进行特殊处理;如果达到所述速率限制,则在所述慢速消息队列中将所述待处理数据消息重新列队。2.根据权利要求1所述的方法,其特征在于,所述待处理数据消息是否到达速率限制的评估包括:创建可配置预定义持续时间的循环时间窗口;针对每一由所述速率限制器第一次接收的与任务所有者相关联的数据消息创建计数器;每当所述速率限制器随后接收到与所述任务所有者相关联的数据消息或任何子数据消息时,使所述计数器增加一;如果所述计数器等于或超出可配置预定义最大数目,则:由所述速率限制器接收的与所述任务所有者相关联的所述数据消息或所述子数据消息保持不被所述处理消费者处理,使得所述处理消费者可以继续处理其它数据消息或子数据消息;以及在当前时间窗口到期时,引导由所述速率限制器接收的与所述任务所有者相关联的所述数据消息或所述子数据消息在所述慢速消息队列中重新列队;以及当所述当前时间窗口到期时,删除所述计数器。3.根据权利要求1所述的方法,其特征在于,所述多消息队列子系统进一步包括多个慢速消息队列;其中所述慢速消息队列中的每一个与多个大小阈值中的一个对应,使得超出所述大小阈值的数据消息被分割并在相应的慢速消息队列中重新列队;且其中所述慢速消息队列中的每一个与多个速率限制中的一个对应,如果超过所述速率
限制,数据消息将在相应的慢速消息队列中重新列队。4.一种用于利用消息队列管理和处...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:香港应用科技研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1