CN115002224A - 消息处理方法、装置、***、电子设备和存储介质 - Google Patents

消息处理方法、装置、***、电子设备和存储介质 Download PDF

Info

Publication number
CN115002224A
CN115002224A CN202210590298.0A CN202210590298A CN115002224A CN 115002224 A CN115002224 A CN 115002224A CN 202210590298 A CN202210590298 A CN 202210590298A CN 115002224 A CN115002224 A CN 115002224A
Authority
CN
China
Prior art keywords
message
messages
priority
task pool
processing equipment
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
CN202210590298.0A
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210590298.0A priority Critical patent/CN115002224A/zh
Publication of CN115002224A publication Critical patent/CN115002224A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本公开实施例公开了一种消息处理方法、装置、***、电子设备和存储介质。其中,消息处理方法包括:从消息生成设备接收多个优先级的消息;根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;将所述消息发送至所述消息处理设备,从而在消息管理设备中按照优先级将消息分入多个队列,并按照优先级取出,和具体服务完全解耦,避免对服务层的侵入,具有良好的服务兼容性和易用性。

Description

消息处理方法、装置、***、电子设备和存储介质
技术领域
本公开涉及计算机领域,具体涉及消息处理方法、装置、***、电子设备和存储介质。
背景技术
作为云原生技术的一种,分布式消息队列(通常也称作消息中间件)作为与同步通信手段相对应的异步通信方式,在分布式***中已经有大规模的应用,承担着异步解耦、削峰填谷等作用。但在特定的服务场景下,例如直播场景中,队列模型的先入先出(First InFirst Out,FIFO)特性决定了其无法满足某些特殊需求,需要进行优先级处理,保证即使在其他消息大量堆积未处理的情况下,例如直播的服务数据能提前得到处理降低延迟带来的影响。
发明内容
为了解决相关技术中的问题,本公开实施例提供了一种消息处理方法、装置、***、电子设备和存储介质。
第一方面,本公开实施例中提供了一种消息处理方法,包括:
从消息生成设备接收多个优先级的消息;
根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;
根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
将所述消息发送至所述消息处理设备。
在本公开实施例中,
所述根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息包括:
获取所述消息处理设备请求的消息的数量;
从最高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备;
当从最高优先级的所述存储消息队列中取出的消息的数量小于所述消息处理设备请求的消息的数量时,从次高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备,依次类推,直至取出的消息的数量等于所述消息处理设备请求的消息的数量,或者取出所有存储消息队列中的消息。
第二方面,本公开实施例中提供了一种消息处理方法,包括:
向消息管理设备发送对特定数量的消息的请求;
将接收到的消息,按照特定模式放入消息任务池;
从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
在本公开实施例中,
所述将接收到的消息,按照特定模式放入消息任务池包括:
在所述特定模式为***模式的条件下,按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置;和/或
在所述特定模式为附着模式的条件下,将接收到的消息按照接收顺序依次放入所述消息任务池的尾部。
在本公开实施例中,
所述按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置包括:
将接收到的最高优先级的消息放入所述消息任务池的头部,将接收到的次高优先级的消息放入所述消息任务池的相应优先级位置,将最低优先级的消息放入所述消息任务池的尾部。
第三方面,本公开实施例中提供了一种消息处理方法,包括:
消息管理设备从消息生成设备接收多个优先级的消息;
所述消息管理设备根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列的尾部;
消息处理设备向所述消息管理设备发送对特定数量的消息的请求;
所述消息管理设备根据所述消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
所述消息管理设备将所述消息发送至所述消息处理设备;
所述消息处理设备将接收到的消息,按照特定模式放入消息任务池;
所述消息处理设备从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
在本公开实施例中,
所述消息管理设备根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息包括:
所述消息管理设备获取所述消息处理设备请求的消息的数量;
所述消息管理设备从最高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备;
当所述消息管理设备从最高优先级的所述存储消息队列中取出的消息的数量小于所述消息处理设备请求的消息的数量时,从次高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备,依次类推,直至取出的消息的数量等于所述消息处理设备请求的消息的数量,或者取出所有存储消息队列中的消息。
在本公开实施例中,
所述消息处理设备将接收到的消息,按照特定模式放入消息任务池包括:
在所述特定模式为***模式的条件下,所述消息管理设备按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置;和/或
在所述特定模式为附着模式的条件下,所述消息处理设备将接收到的消息按照接收顺序依次放入所述消息任务池的尾部。
第四方面,本公开实施例中提供了一种消息处理装置,其特征在于,包括:
消息接收模块,用于从消息生成设备接收多个优先级的消息;
消息存储模块,用于根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;
消息取出模块,用于根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
消息发送模块,用于将所述消息发送至所述消息处理设备。
第五方面,本公开实施例中提供了一种消息处理装置,其特征在于,包括:
请求发送模块,用于向消息管理设备发送对特定数量的消息的请求;
任务池模块,用于将接收到的消息,按照特定模式放入消息任务池;
消息处理模块,用于从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
第六方面,本公开实施例中提供了一种消息处理***,其特征在于,包括:
消息生成设备,用于:
向消息管理设备发送多个优先级的消息,
消息管理设备,用于:
从消息生成设备接收多个优先级的消息;
根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;
根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
将所述消息发送至所述消息处理设备,
消息处理设备,用于:
向所述消息管理设备发送对特定数量的消息的请求;
将接收到的消息,按照特定模式放入消息任务池;
从所述消息任务池的头部,依次处理所述消息任务池中的消息。
第七方面,本公开实施例提供了一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面、第二方面任一项所述的方法。
第八方面,本公开实施例中提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面、第二方面任一项所述的方法。
第九方面,本公开实施例中提供了一种计算机程序,其中包括计算机指令,该计算机指令被处理器执行时实现如如第一方面、第二方面任一项所述的方法。
本公开实施例提供的技术方案可以包括以下有益效果:
根据本公开实施例提供的技术方案,通过从消息生成设备接收多个优先级的消息;根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;将所述消息发送至所述消息处理设备,从而在消息管理设备中按照优先级将消息分入多个队列,并按照优先级取出,和具体服务完全解耦,避免对服务层的侵入,具有良好的服务兼容性和易用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出一种传统消息处理方法的实施场景的示例性示意图。
图2示出另一种传统消息处理方法的实施场景的示例性示意图。
图3示出根据本公开一实施例的消息处理方法的实施场景的示例性示意图。
图4示出根据本公开一实施例的消息处理方法的实施场景的示例性示意图。
图5示出根据本公开一实施例的消息处理方法的流程图。
图6示出根据本公开一实施例的消息处理方法的流程图。
图7示出根据本公开一实施例的消息处理装置的结构框图。
图8示出根据本公开一实施例的消息处理装置的结构框图。
图9示出根据本公开一实施例的消息处理***的结构框图。
图10示出根据本公开的实施例的电子设备的结构框图。
图11示出适于用来实现根据本公开实施例的方法的计算机***的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的标签、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他标签、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的标签可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
分布式消息队列作为与同步通信手段相对应的异步通信方式,在分布式***中已经有大规模的应用,承担着异步解耦、削峰填谷等作用。但在特定的服务场景下,例如直播场景中,队列模型的FIFO特性决定了其无法满足某些特殊需求,需要进行优先级处理,保证即使在其他消息大量堆积未处理的情况下,例如直播的服务数据能提前得到处理降低延迟带来的影响。
图1示出一种传统消息处理方法的实施场景的示例性示意图。
如图1所示,在消息生成设备中,完成由优先级到主题的映射关系,即将优先级1、N、2、1的消息,映射为主题-1、主题-N、主题-2、主题-1。在消息管理设备中,对应主题-1、主题-2、主题-N的消息,主题1、2......、N在消息处理设备处分别有对应的N个消费者ID,即GID-1、......、GID-N。主题对上层应用不透明,依然暴露主题。在消息生成设备端,需要根据消息的优先级将消息映射到对应的主题上;而在消息处理设备端,也会在底层隐含地启动N个独立的消费者进程,分别订阅N个主题。需要对服务进行繁琐的适配,对服务层侵入严重,升级兼容性差,易用性差。
图2示出另一种传统消息处理方法的实施场景的示例性示意图。
如图2所示,针对消息生成设备中不同优先级的消息,在消息管理设备中将不同优先级绑定到不同的部分,高优先级的分配比例高,低优先级次之。消息生成设备根据优先级,依托选择机制将消息发送到消息管理设备的特定的队列。在消息处理设备端,消费者进程实例基于优先级的再平衡策略,按照同样的比例,高优先级的接入的消费者实例多于低优先级。此场景中,也需要对服务进行繁琐的适配,对服务层侵入严重,升级兼容性差,易用性差。
为解决上述问题,本公开提出了一种数据传输方法、装置、电子设备、存储介质和程序。
图3示出根据本公开一实施例的消息处理方法的实施场景的示例性示意图。
本领域普通技术人员可以理解,图3示例性示出了消息处理方法的实施场景,而不构成对本公开的限定。
如图3所示,图3中包括:消息生成设备、消息管理设备和消息处理设备。
在本公开实施例中,消息生成设备中生成不同优先级的消息,用不同灰度的方块表示,灰度深的表示高优先级。
消息管理设备中包括多个队列,例如优先级由高至低的5个队列。最高优先级队列中包括3个消息,次级的队列中依次包括1、1、4、6个消息。
消息处理设备向消息管理设备请求最多例如6个消息。消息管理设备在处理消息处理设备的请求时,按照优先级由高至低的顺序,对各优先级的队列进行扫描。如果从高优先级的队列中取出足够的消息,则将取出的消息发送至消息处理设备后返回。如果高优先级队列中的消息数量不足,则读取下一优先级的队列中的消息,依次类推,直至读取足够数量的消息,或者读取完所有队列中的消息。
在本公开实施例中,消息管理设备从最高优先级的队列中取出3个消息,并从后续、次级的队列中依次取出1、1、1个消息,共6个消息,发送至消息处理设备,作为对消息处理设备请求6个消息的响应。
图4示出根据本公开一实施例的消息处理方法的实施场景的示例性示意图。
本领域普通技术人员可以理解,图4示例性示出了消息处理方法的实施场景,而不构成对本公开的限定。
具体地,图4示例性示出了图3中的消息处理设备的消息处理过程。
在本公开实施例中,从消息处理设备的角度,消息管理设备中等效为单一的逻辑消息队列。该逻辑消息队列示出了图3中消息管理设备中的多个不同优先级的队列,对消息处理设备的等效逻辑结构。
在本公开实施例中,在消息管理设备的逻辑消息队列中,可以存在白色填充表示的低优先级消息和灰色填充的高优先级消息。其中高优先级消息是第N个消息。
当消息处理设备向消息管理设备发送请求2个消息的请求后,消息管理设备从逻辑消息队列中取出位置N的高优先级消息和位置1的低优先级消息,发送至消息处理设备。
在本公开实施例中,消息处理设备可以包括两种类型:附着模式消息处理设备和***模式消息处理设备。附着模式消息处理设备和***模式消息处理设备中均包含有任务池。
对于附着模式消息处理设备,位置N的高优先级消息和位置1的低优先级消息被依次附着至任务池的尾部。附着模式消息处理设备依次从任务池头部取出消息进行处理。在这种模式下,任务池中已有的消息被优先处理,已有消息的处理不会因为新消息而产生延迟。而在新加入的消息中,高优先级消息比低优先级消息先处理,保证了高优先级消息的处理实时性。
本领域普通技术人员可以理解,也可将消息附着至任务池的头部,而从任务池的尾部取出。也可以不是依次取出,而是具有选择性地取出,本公开对此不作限定。
对于***模式消息处理设备,位置N的高优先级消息被***至任务池的头部,而位置1的低优先级消息被加入至任务池的尾部。***模式消息处理设备依次从任务池头部取出消息进行处理。在这种模式下,新加入的位置N的高优先级消息被优先处理,从而最大程度保证了高优先级消息的处理实时性。而任务池中的原有低优先级消息可能产生延迟。
在本公开实施例中,仅示出了两种优先级的消息,即高优先级消息和低优先级消息。当逻辑消息队列中存在多种优先级消息,例如最高优先级、次高优先级、最低优先级时(图中未示出),消息管理设备可以根据消息处理设备请求的消息个数,按照优先级由高至低的顺序,取出多种优先级的消息。对附着模式消息处理设备,按照优先级由高至低的顺序,附着至任务池的尾部。对***模式消息处理设备,按照消息的优先级,***至任务池的特定位置。例如,最高优先级消息***任务池头部,最低优先级消息***任务池尾部,次高优先级消息***任务池的次高优先级消息位置。
图5示出根据本公开一实施例的消息处理方法的流程图。
图5具体示出了图3中的消息管理设备对消息进行处理的方法。
如图5所示,消息处理方法包括步骤S501、S502、S503、S504。
在步骤S501中,从消息生成设备接收多个优先级的消息。
在步骤S502中,根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列。
在步骤S503中,根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息。
在步骤S504中,将所述消息发送至所述消息处理设备。
如前述对图3的分析,消息生成设备中生成不同优先级的消息,用不同灰度的方块表示,灰度深的表示高优先级。
消息管理设备中包括多个队列,例如优先级由高至低的5个队列。最高优先级队列中包括3个消息,次级的队列中依次包括1、1、4、6个消息。
消息处理设备向消息管理设备请求最多例如6个消息。消息管理设备在处理消息处理设备的请求时,按照优先级由高至低的顺序,对各优先级的队列进行扫描。如果从高优先级的队列中取出足够的消息,则将取出的消息发送至消息处理设备后返回。如果高优先级队列中的消息数量不足,则读取下一优先级的队列中的消息,依次类推,直至读取足够数量的消息,或者读取完所有队列中的消息。
在本公开实施例中,消息管理设备从最高优先级的队列中取出3个消息,并从后续、次级的队列中依次取出1、1、1个消息,共6个消息,发送至消息处理设备,作为对消息处理设备请求6个消息的响应。
根据本公开实施例,通过从消息生成设备接收多个优先级的消息;根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;将所述消息发送至所述消息处理设备,从而在消息管理设备中按照优先级将消息分入多个队列,并按照优先级取出,和具体服务完全解耦,避免对服务层的侵入,具有良好的服务兼容性和易用性。
根据本公开实施例,通过所述根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息包括:获取所述消息处理设备请求的消息的数量;从最高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备;当从最高优先级的所述存储消息队列中取出的消息的数量小于所述消息处理设备请求的消息的数量时,从次高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备,依次类推,直至取出的消息的数量等于所述消息处理设备请求的消息的数量,或者取出所有存储消息队列中的消息,从而保证高优先级消息的处理实时性,而且尽量满足消息处理设备对取出的消息数量的需求。
图6示出根据本公开一实施例的消息处理方法的流程图。
图6具体示出了图3、图4中的消息处理设备对消息进行处理的方法。
如图6所示,消息处理方法包括步骤S601、S602、S603。
在步骤S601中,向消息管理设备发送对特定数量的消息的请求。
在步骤S602中,将接收到的消息,按照特定模式放入消息任务池。
在步骤S603中,从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
如前述对图4的分析,当消息处理设备向消息管理设备发送请求2个消息的请求后,消息管理设备从逻辑消息队列中取出位置N的高优先级消息和位置1的低优先级消息,发送至消息处理设备。
在本公开实施例中,消息处理设备可以包括两种类型:附着模式消息处理设备和***模式消息处理设备。附着模式消息处理设备和***模式消息处理设备中均包含有任务池。
对于附着模式消息处理设备,位置N的高优先级消息和位置1的低优先级消息被依次附着至任务池的尾部。附着模式消息处理设备按照指定顺序,例如依次,从任务池的指定位置,例如头部取出消息进行处理。在这种模式下,任务池中已有的消息被优先处理,已有消息的处理不会因为新消息而产生延迟。而在新加入的消息中,高优先级消息比低优先级消息先处理,保证了高优先级消息的处理实时性。
本领域普通技术人员可以理解,也可以将消息附着至任务池的头部,而从尾部取出进行处理。也可以不是依次取出,而是具有选择性地取出,本公开对此不作限定。
对于***模式消息处理设备,位置N的高优先级消息被***至任务池的头部,而位置1的低优先级消息被加入至任务池的尾部。附着模式消息处理设备按照指定顺序,例如依次,从任务池的指定位置,例如头部取出消息进行处理。在这种模式下,新加入的位置N的高优先级消息被优先处理,从而最大程度保证了高优先级消息的处理实时性。而任务池中的原有低优先级消息可能产生延迟。在本公开实施例中,仅示出了两种优先级的消息,即高优先级消息和低优先级消息。当逻辑消息队列中存在多种优先级消息,例如最高优先级、次高优先级、最低优先级时(图中未示出),消息管理设备可以根据消息处理设备请求的消息个数,按照优先级由高至低的顺序,取出多种优先级的消息。对附着模式消息处理设备,按照优先级由高至低的顺序,附着至任务池的尾部。对***模式消息处理设备,按照消息的优先级,***至任务池的特定位置。例如,最高优先级消息***任务池头部,最低优先级消息***任务池尾部,次高优先级消息***任务池的次高优先级消息位置。
根据本公开实施例,通过向消息管理设备发送对特定数量的消息的请求;将接收到的消息,按照特定模式放入消息任务池;从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息,从而根据不同的模式,满足对不同优先级消息的处理实时性要求。
根据本公开实施例,通过所述将接收到的消息,按照特定模式放入消息任务池包括:在所述特定模式为***模式的条件下,按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置;和/或在所述特定模式为附着模式的条件下,将接收到的消息按照接收顺序依次放入所述消息任务池的尾部,从而在***模式下,最大可能满足高优先级消息的处理实时性要求,而在附着模式的条件下,优先处理任务池中的已有消息,并满足新加入的高优先级消息的处理实时性要求。
根据本公开实施例,通过所述按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置包括:将接收到的最高优先级的消息放入所述消息任务池的头部,将接收到的次高优先级的消息放入所述消息任务池的相应优先级位置,将最低优先级的消息放入所述消息任务池的尾部,从而在***模式下,根据消息优先级对在任务池中的***位置进行精细管理,满足对不同优先级消息的处理实时性要求。
在本公开实施例中,综合上述对图3、图4的分析,消息生成设备、消息管理设备、消息处理设备可以按照以下方式进行交互。
消息管理设备从消息生成设备接收多个优先级的消息;
所述消息管理设备根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列的尾部;
消息处理设备向所述消息管理设备发送对特定数量的消息的请求;
所述消息管理设备根据所述消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
所述消息管理设备将所述消息发送至所述消息处理设备;
所述消息处理设备将接收到的消息,按照特定模式放入消息任务池;
所述消息处理设备从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
根据本公开实施例,通过消息管理设备从消息生成设备接收多个优先级的消息;所述消息管理设备根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列的尾部;消息处理设备向所述消息管理设备发送对特定数量的消息的请求;所述消息管理设备根据所述消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;所述消息管理设备将所述消息发送至所述消息处理设备;所述消息处理设备将接收到的消息,按照特定模式放入消息任务池;所述消息处理设备从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息,从而在消息管理设备中按照优先级将消息分入多个队列,并按照优先级取出,和具体服务完全解耦,避免对服务层的侵入,具有良好的服务兼容性和易用性,消息处理设备根据不同的模式,满足对不同优先级消息的处理实时性要求。
根据本公开实施例,通过所述消息管理设备根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息包括:所述消息管理设备获取所述消息处理设备请求的消息的数量;所述消息管理设备从最高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备;当所述消息管理设备从最高优先级的所述存储消息队列中取出的消息的数量小于所述消息处理设备请求的消息的数量时,从次高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备,依次类推,直至取出的消息的数量等于所述消息处理设备请求的消息的数量,或者取出所有存储消息队列中的消息,从而保证高优先级消息的处理实时性,而且尽量满足消息处理设备对取出的消息数量的需求。
根据本公开实施例,通过所述消息处理设备将接收到的消息,按照特定模式放入消息任务池包括:在所述特定模式为***模式的条件下,所述消息管理设备按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置;和/或在所述特定模式为附着模式的条件下,所述消息处理设备将接收到的消息按照接收顺序依次放入所述消息任务池的尾部,从而在***模式下,最大可能满足高优先级消息的处理实时性要求,而在附着模式的条件下,优先处理任务池中的已有消息,并满足新加入的高优先级消息的处理实时性要求。
图7示出根据本公开一实施例的消息处理装置的结构框图。
图7具体示出了例如图3中的消息管理设备的消息处理装置的结构框图。
如图7所示,消息处理装置700包括:消息接收模块701、消息存储模块702、消息取出模块703、消息发送模块704。
消息接收模块701用于从消息生成设备接收多个优先级的消息;
消息存储模块702用于根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;
消息取出模块703用于根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
消息发送模块704用于将所述消息发送至所述消息处理设备。
根据本公开实施例,通过消息接收模块,用于从消息生成设备接收多个优先级的消息;消息存储模块,用于根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;消息取出模块,用于根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;消息发送模块,用于将所述消息发送至所述消息处理设备,从而在消息管理设备中按照优先级将消息分入多个队列,并按照优先级取出,和具体服务完全解耦,避免对服务层的侵入,具有良好的服务兼容性和易用性。
根据本公开实施例,通过所述根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息包括:获取所述消息处理设备请求的消息的数量;从最高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备;当从最高优先级的所述存储消息队列中取出的消息的数量小于所述消息处理设备请求的消息的数量时,从次高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备,依次类推,直至取出的消息的数量等于所述消息处理设备请求的消息的数量,或者取出所有存储消息队列中的消息,从而保证高优先级消息的处理实时性,而且尽量满足消息处理设备对取出的消息数量的需求。
图8示出根据本公开一实施例的消息处理装置的结构框图。
图8具体示出了例如图3、图4中的消息处理设备的消息处理装置的结构框图。
如图8所示,消息处理装置800包括:请求发送模块801、任务池模块802、消息处理模块803。
请求发送模块801,用于向消息管理设备发送对特定数量的消息的请求;
任务池模块802,用于将接收到的消息,按照特定模式放入消息任务池;
消息处理模块803,用于从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
根据本公开实施例,通过请求发送模块,用于向消息管理设备发送对特定数量的消息的请求;任务池模块,用于将接收到的消息,按照特定模式放入消息任务池;消息处理模块,用于从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息,从而根据不同的模式,满足对不同优先级消息的处理实时性要求。
根据本公开实施例,通过所述将接收到的消息,按照特定模式放入消息任务池包括:在所述特定模式为***模式的条件下,按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置;和/或在所述特定模式为附着模式的条件下,将接收到的消息按照接收顺序依次放入所述消息任务池的尾部,从而在***模式下,最大可能满足高优先级消息的处理实时性要求,而在附着模式的条件下,优先处理任务池中的已有消息,并满足新加入的高优先级消息的处理实时性要求。
根据本公开实施例,通过所述按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置包括:将接收到的最高优先级的消息放入所述消息任务池的头部,将接收到的次高优先级的消息放入所述消息任务池的相应优先级位置,将最低优先级的消息放入所述消息任务池的尾部,从而在***模式下,根据消息优先级对在任务池中的***位置进行精细管理,满足对不同优先级消息的处理实时性要求。
图9示出根据本公开一实施例的消息处理***的结构框图。
如图9所示,消息处理***900包括:消息生成设备901、消息管理设备902、消息处理设备903。
消息生成设备901,用于:向消息管理设备发送多个优先级的消息。
消息管理设备902,用于:从消息生成设备接收多个优先级的消息;根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;将所述消息发送至所述消息处理设备。
消息处理设备903,用于:向所述消息管理设备发送对特定数量的消息的请求;将接收到的消息,按照特定模式放入消息任务池;从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
根据本公开实施例,通过消息生成设备,用于:向消息管理设备发送多个优先级的消息,消息管理设备,用于:从消息生成设备接收多个优先级的消息;根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;将所述消息发送至所述消息处理设备,消息处理设备,用于:向所述消息管理设备发送对特定数量的消息的请求;将接收到的消息,按照特定模式放入消息任务池;从所述消息任务池的头部,依次处理所述消息任务池中的消息,从而在消息管理设备中按照优先级将消息分入多个队列,并按照优先级取出,和具体服务完全解耦,避免对服务层的侵入,具有良好的服务兼容性和易用性,消息处理设备根据不同的模式,满足对不同优先级消息的处理实时性要求。
图10示出根据本公开的实施例的电子设备的结构框图。
如图10所示,所述电子设备1000包括存储器1001和处理器1002,其中,存储器1001用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1002执行以实现以下步骤:
从消息生成设备接收多个优先级的消息;
根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;
根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
将所述消息发送至所述消息处理设备。
在本公开实施例中,
所述根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息包括:
获取所述消息处理设备请求的消息的数量;
从最高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备;
当从最高优先级的所述存储消息队列中取出的消息的数量小于所述消息处理设备请求的消息的数量时,从次高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备,依次类推,直至取出的消息的数量等于所述消息处理设备请求的消息的数量,或者取出所有存储消息队列中的消息。
所述一条或多条计算机指令还被所述处理器1002执行以实现以下步骤:
向消息管理设备发送对特定数量的消息的请求;
将接收到的消息,按照特定模式放入消息任务池;
从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
在本公开实施例中,
所述将接收到的消息,按照特定模式放入消息任务池包括:
在所述特定模式为***模式的条件下,按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置;和/或
在所述特定模式为附着模式的条件下,将接收到的消息按照接收顺序依次放入所述消息任务池的尾部。
在本公开实施例中,
所述按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置包括:
将接收到的最高优先级的消息放入所述消息任务池的头部,将接收到的次高优先级的消息放入所述消息任务池的相应优先级位置,将最低优先级的消息放入所述消息任务池的尾部。
图11示出适于用来实现根据本公开实施例的方法的计算机***的结构示意图。
如图11所示,计算机***1100包括处理单元1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行上述实施例中的各种处理。在RAM1103中,还存储有计算机***1100操作所需的各种程序和数据。处理单元1101、ROM1102以及RAM1103通过总线704彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。其中,所述处理单元1101可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施例,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括计算机指令,该计算机指令被处理器执行时实现上文所述的方法步骤。在这样的实施例中,该计算机程序产品可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中电子设备或计算机***中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种消息处理方法,其特征在于,包括:
从消息生成设备接收多个优先级的消息;
根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;
根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
将所述消息发送至所述消息处理设备。
2.根据权利要求1所述的方法,其特征在于,
所述根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息包括:
获取所述消息处理设备请求的消息的数量;
从最高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备;
当从最高优先级的所述存储消息队列中取出的消息的数量小于所述消息处理设备请求的消息的数量时,从次高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备,依次类推,直至取出的消息的数量等于所述消息处理设备请求的消息的数量,或者取出所有存储消息队列中的消息。
3.一种消息处理方法,其特征在于,包括:
向消息管理设备发送对特定数量的消息的请求;
将接收到的消息,按照特定模式放入消息任务池;
从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
4.根据权利要求3所述的方法,其特征在于,
所述将接收到的消息,按照特定模式放入消息任务池包括:
在所述特定模式为***模式的条件下,按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置;和/或
在所述特定模式为附着模式的条件下,将接收到的消息按照接收顺序依次放入所述消息任务池的尾部。
5.根据权利要求4所述的方法,其特征在于,
所述按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置包括:
将接收到的最高优先级的消息放入所述消息任务池的头部,将接收到的次高优先级的消息放入所述消息任务池的相应优先级位置,将最低优先级的消息放入所述消息任务池的尾部。
6.一种消息处理方法,其特征在于,包括:
消息管理设备从消息生成设备接收多个优先级的消息;
所述消息管理设备根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列的尾部;
消息处理设备向所述消息管理设备发送对特定数量的消息的请求;
所述消息管理设备根据所述消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
所述消息管理设备将所述消息发送至所述消息处理设备;
所述消息处理设备将接收到的消息,按照特定模式放入消息任务池;
所述消息处理设备从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
7.根据权利要求6所述的方法,其特征在于,
所述消息管理设备根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息包括:
所述消息管理设备获取所述消息处理设备请求的消息的数量;
所述消息管理设备从最高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备;
当所述消息管理设备从最高优先级的所述存储消息队列中取出的消息的数量小于所述消息处理设备请求的消息的数量时,从次高优先级的所述存储消息队列中取出消息,发送至所述消息处理设备,依次类推,直至取出的消息的数量等于所述消息处理设备请求的消息的数量,或者取出所有存储消息队列中的消息。
8.根据权利要求6所述的方法,其特征在于,
所述消息处理设备将接收到的消息,按照特定模式放入消息任务池包括:
在所述特定模式为***模式的条件下,所述消息管理设备按照所述消息的优先级,将所述消息放入所述消息任务池的特定位置;和/或
在所述特定模式为附着模式的条件下,所述消息处理设备将接收到的消息按照接收顺序依次放入所述消息任务池的尾部。
9.一种消息处理装置,其特征在于,包括:
消息接收模块,用于从消息生成设备接收多个优先级的消息;
消息存储模块,用于根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;
消息取出模块,用于根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
消息发送模块,用于将所述消息发送至所述消息处理设备。
10.一种消息处理装置,其特征在于,包括:
请求发送模块,用于向消息管理设备发送对特定数量的消息的请求;
任务池模块,用于将接收到的消息,按照特定模式放入消息任务池;
消息处理模块,用于从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
11.一种消息处理***,其特征在于,包括:
消息生成设备,用于:
向消息管理设备发送多个优先级的消息,
消息管理设备,用于:
从消息生成设备接收多个优先级的消息;
根据接收到的所述消息的优先级,将所述消息放入对应优先级的存储消息队列;
根据消息处理设备的请求,按照优先级从高至低的顺序,从所述存储消息队列中取出所述消息;
将所述消息发送至所述消息处理设备,
消息处理设备,用于:
向所述消息管理设备发送对特定数量的消息的请求;
将接收到的消息,按照特定模式放入消息任务池;
从所述消息任务池的指定位置,按照指定顺序处理所述消息任务池中的消息。
12.一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-5任一项所述的方法步骤。
13.一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现权利要求1-5任一项所述的方法步骤。
14.一种计算机程序,其中包括计算机指令,其特征在于,该计算机指令被处理器执行时实现如权利要求1-5任一项所述的方法。
CN202210590298.0A 2022-05-26 2022-05-26 消息处理方法、装置、***、电子设备和存储介质 Pending CN115002224A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210590298.0A CN115002224A (zh) 2022-05-26 2022-05-26 消息处理方法、装置、***、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210590298.0A CN115002224A (zh) 2022-05-26 2022-05-26 消息处理方法、装置、***、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN115002224A true CN115002224A (zh) 2022-09-02

Family

ID=83029469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210590298.0A Pending CN115002224A (zh) 2022-05-26 2022-05-26 消息处理方法、装置、***、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN115002224A (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990053526A (ko) * 1997-12-24 1999-07-15 전주범 다중레벨 우선순위 큐를 이용한 태스크간 전이중 통신 방법
CN105763608A (zh) * 2016-02-05 2016-07-13 浪潮(北京)电子信息产业有限公司 一种用于云存储***的消息处理方法和装置
CN105763481A (zh) * 2014-12-19 2016-07-13 北大方正集团有限公司 一种信息缓存方法及装置
CN106354573A (zh) * 2016-08-29 2017-01-25 汉柏科技有限公司 一种基于优先级队列的进程间通信方法及装置
CN107391283A (zh) * 2017-08-16 2017-11-24 郑州云海信息技术有限公司 一种消息处理方法及装置
US20200076922A1 (en) * 2018-09-04 2020-03-05 International Business Machines Corporation Application data access priority for remote storage systems
CN111404838A (zh) * 2020-03-17 2020-07-10 上海云励科技有限公司 消息处理方法、装置及设备
CN111475312A (zh) * 2019-09-12 2020-07-31 北京东土科技股份有限公司 基于实时操作***的消息驱动方法和装置
US20210165686A1 (en) * 2018-12-11 2021-06-03 Tencent Technology (Shenzhen) Company Limited Task processing method, system, device, and storage medium
CN113176931A (zh) * 2021-03-30 2021-07-27 东软集团股份有限公司 任务流处理方法、装置、存储介质及电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990053526A (ko) * 1997-12-24 1999-07-15 전주범 다중레벨 우선순위 큐를 이용한 태스크간 전이중 통신 방법
CN105763481A (zh) * 2014-12-19 2016-07-13 北大方正集团有限公司 一种信息缓存方法及装置
CN105763608A (zh) * 2016-02-05 2016-07-13 浪潮(北京)电子信息产业有限公司 一种用于云存储***的消息处理方法和装置
CN106354573A (zh) * 2016-08-29 2017-01-25 汉柏科技有限公司 一种基于优先级队列的进程间通信方法及装置
CN107391283A (zh) * 2017-08-16 2017-11-24 郑州云海信息技术有限公司 一种消息处理方法及装置
US20200076922A1 (en) * 2018-09-04 2020-03-05 International Business Machines Corporation Application data access priority for remote storage systems
US20210165686A1 (en) * 2018-12-11 2021-06-03 Tencent Technology (Shenzhen) Company Limited Task processing method, system, device, and storage medium
CN111475312A (zh) * 2019-09-12 2020-07-31 北京东土科技股份有限公司 基于实时操作***的消息驱动方法和装置
CN111404838A (zh) * 2020-03-17 2020-07-10 上海云励科技有限公司 消息处理方法、装置及设备
CN113176931A (zh) * 2021-03-30 2021-07-27 东软集团股份有限公司 任务流处理方法、装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
US8139596B2 (en) Communicating prioritized messages to a destination queue from multiple source queues using source-queue-specific priority values
CN107391271B (zh) 一种基于消息队列***的延时任务触发方法和装置
US8452833B2 (en) Cached message distribution via HTTP redirects
CN111212085B (zh) 物联网平台同步调用的方法、物联网***和网络设备
JP2008033952A (ja) 共通作業キュー環境における最適格サーバ
CN113452731B (zh) 资源分配方法、装置、电子设备及计算机可读存储介质
US8938522B2 (en) Tiered XML services in a content management system
CN115002224A (zh) 消息处理方法、装置、***、电子设备和存储介质
US20200236165A1 (en) System and method for synchronization of media objects between devices operating in a multiroom system
CN116155828B (zh) 一种多个虚拟队列的报文保序方法及其装置、存储介质、电子设备
CN116166421A (zh) 分布式训练任务的资源调度方法及其设备
CN110837414B (zh) 任务处理方法和装置
CN110825342B (zh) 存储调度器件和用于处理信息的***、方法及装置
CN110955524A (zh) 服务器优化调度方法
CN116383240A (zh) 基于fpga多数据库加速查询方法、装置、设备及介质
US20090138545A1 (en) Asynchronous response processing in a web based request-response computing system
CN113806035B (zh) 分布式调度方法及业务服务器
CN115767188A (zh) 消息请求处理方法、***、设备和可读存储介质
CN114928652A (zh) 地图数据传输方法、装置、电子设备、存储介质和程序
CN116560809A (zh) 数据处理方法及装置、设备、介质
CN113127561B (zh) 业务单号的生成方法、装置、电子设备和存储介质
CN113449994A (zh) 任务单的分配方法、装置、电子设备、介质和程序产品
CN110018908B (zh) 一种进程间通信方法、电子设备及可读存储介质
CN112749031A (zh) 直播消息的处理方法、装置、设备及存储介质
JP2000099481A (ja) リアルタイム分散システム

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