一种消息处理方法、装置、电子设备、存储介质及产品制造方法及图纸

技术编号:33920982 阅读:21 留言:0更新日期:2022-06-25 21:01
本发明专利技术公开了一种消息处理方法、装置、电子设备、存储介质及产品。所述方法包括:按照消息的优先级将消息发送到对应的优先级通道中;根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理。其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。通过该方法对消息按照优先级进行消费输出处理时,不依赖于其他的功能组件,且支持分布式优先级消费。且支持分布式优先级消费。且支持分布式优先级消费。

【技术实现步骤摘要】
一种消息处理方法、装置、电子设备、存储介质及产品


[0001]本专利技术实施例涉及计算机
,尤其涉及一种消息处理方法、装置、电子设备、存储介质及产品。

技术介绍

[0002]消息队列是一种异步通信方式,通过消息生产输入、缓存、消息消费输出三个阶段实现对消息的处理,广泛应用于线程间通信、进程间通信以及服务间通信。特别在微服务框架中,消息队列组件是事件驱动架构的核心组成部分。消息队列的工作原理是构建一个包含缓存的队列,一边接受消息输入,一边接受消息读取。
[0003]由于消息队列的广泛应用,目前已经有较多的消息队列实现方法以及封装而成的消息中间件产品。为解决业务中的按优先级处理消息的需求,现有技术可以包括以下几种方案:
[0004]方案1、通过一部分消息中间件产品封装实现了优先级消息队列,对消息队列等待消息进行排序,实现高优先级消息先消费输出。
[0005]方案2、在消息消费过程中,将消息先缓存到一个全局的队列中,在全局队列中对消息进行排序,然后再进行消息消费输出,典型的比如使用MYSQL数据库对消息进行缓存及排序,或使用Redis数据库的Sorted Set进行缓存和排序。
[0006]方案3、从消息消费端获取一定量的消息后,在本地对消息先进行排序后消费输出。
[0007]上述技术方案存在以下缺点:方案1需要依赖特定的消息中间产品;方案2需要增加额外的组件依赖,增加存储及IO的消耗;方案3只能满足单点已获取的消息中部分消息按优先级消费输出,无法满足全部或分布式优先级的需求。

技术实现思路

[0008]本专利技术提供了一种消息处理方法、装置、电子设备、存储介质及产品,以解决不同优先级消息按照优先级和时间顺序进行处理的问题。
[0009]根据本专利技术的一方面,提供了一种消息处理方法,包括:
[0010]按照消息的优先级将消息发送到对应的优先级通道中;
[0011]根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理。
[0012]其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。
[0013]根据本专利技术的另一方面,提供了一种消息处理装置,包括:
[0014]发送模块,用于按照消息的优先级将消息发送到对应的优先级通道中;
[0015]处理模块,用于根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理。
[0016]其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。
[0017]根据本专利技术的另一方面,提供了一种电子设备,所述电子设备包括:至少一个处理器;以及
[0018]与所述至少一个处理器通信连接的存储器;其中,
[0019]所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术任一实施例所述的消息处理方法
[0020]根据本专利技术的另一方面,提供了一种计算机可读存储介质,所述计算机
[0021]可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本专利技术任一实施例所述的消息处理方法。
[0022]本专利技术实施例的技术方案,通过控制优先级通道的开闭来实现优先级处理的顺序,解决了现有技术依赖于额外的组件以及特定的消息中间产品进行消息处理的问题,以及现有技术中无法支持分布式优先级消费的问题,取到了在不依赖于其他的功能组件,且支持分布式优先级消费的前提下实现对消息按照优先级进行消费输出处理的有益效果。
[0023]应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0024]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1为本专利技术实施例一所提供的一种消息处理方法的流程示意图;
[0026]图2为本专利技术实施例一所提供的一种消息处理方法中的消息生产输入处理的示意图;
[0027]图3为本专利技术实施例一所提供的一种消息处理方法中的获取模式转换过程示意图;
[0028]图4为本专利技术实施例一所提供的一种消息处理方法中的第一优先级处理模式的示意图;
[0029]图5为本专利技术实施例一所提供的第二优先级处理模式中不同优先级消息消费输出处理示意图
[0030]图6为本专利技术实施例三所提供的一种消息处理方法的结构示意图;
[0031]图7为本专利技术实施例的消息处理方法的电子设备的结构示意图。
具体实施方式
[0032]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。应当理解,本专利技术的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本专利技术的范围在此方面不受限制。
[0033]本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0034]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0035]需要注意,本专利技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0036]本专利技术实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0037]实施例一
[0038]图1为本专利技术实施例一所提供的一种消息处理方法的流程示意图,该方法可适本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息处理方法,其特征在于,所述方法包括:按照消息的优先级将消息发送到对应的优先级通道中;根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理;其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。2.根据权利要求1所述的方法,其特征在于,所述优先级处理模式包括第一优先级处理模式和第二优先级处理模式,所述第一优先级处理模式在所述消息进行消费输出处理时对优先级顺序的严格度高于所述第二优先级处理模式。3.根据权利要求2所述的方法,其特征在于,所述第一优先级处理模式包括:通过模式转换器将多个连续消息对应的获取模式转换为拉模式,所述多个连续消息拉取时的等待时长小于预设时长;根据通道控制器的第一预设优先级高度确定多个第一优先级通道,第一优先级通道为通道打开的优先级通道;根据所述多个第一优先级通道从高到低的优先级顺序,通过所述拉模式从所述多个第一优先级通道中拉取连续消息;若拉取到连续消息,则将拉取到的连续消息发送至实际消息处理部分进行处理,并将所述第一预设优先级高度更新为拉取到的连续消息的优先级,根据更新后的第一预设优先级高度重新确定第一优先级通道;若未拉取到连续消息,则将所述第一预设优先级高度降低,根据降低后的第一预设优先级高度重新确定第一优先级通道。4.根据权利要求3所述的方法,其特征在于,将所述获取模式转换为拉模式的方式为:为每个优先级通道添加一个阻塞式容量为预设值的消息缓存,所述消息缓存提供拉模式。5.根据权利要求3所述的方法,其特征在于,所述根据通道控制器的第一优先级高度确定第一优先级通道包括:将优先级大于或等于所述第一预设优先级高度的优先级通道作为第一优先级通道。6.根据权利要求2所述的方法,其特征在于,所述第二优先级处理模式包括多个相同的循环过程,其中,...

【专利技术属性】
技术研发人员:陈致杰
申请(专利权)人:上海爱数信息技术股份有限公司
类型:发明
国别省市:

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

1