消息处理方法及装置制造方法及图纸

技术编号:39750822 阅读:11 留言:0更新日期:2023-12-17 23:48
本申请提供消息处理方法及装置,其中所述消息处理方法包括:获取订阅者提交的订阅项,并在所述订阅项中提取订阅主题和消息过滤条件;将所述消息过滤条件对应的过滤条件值分配至所述订阅主题,并根据分配结果确定所述订阅主题对应的订阅数组;根据所述订阅数组构建消息链表,以及加载所述订阅项关联的跳表结构;按照所述消息链表

【技术实现步骤摘要】
消息处理方法及装置


[0001]本申请涉及消息订阅
,特别涉及消息处理方法及装置


技术介绍

[0002]随着计算机技术的发展,分布式系统设计越来越复杂化和多样化,其中支持订阅发布或生产消费的系统也得到了快速的发展

比如
RabbitMQ、Kafka、RocketMQ
等,都支持跨进程

异步的通信机制,用于上下游传递消息;由消息系统来确保消息的可靠传递

但是,无论是
Kafka
还是
RabbitMQ
,或者
RocketMQ
,都存在应用的局限性,其在对消息进行区分时,主要是按照主题和分区,或者按照交换机和主题模式进行消息分类处理

而只按照主题和分区完成消息的分类处理,其粒度较大,导致消息订阅场景下订阅处理更加复杂

而按照交换机和主题模型进行消息的分类处理,其效率和性能都非常低,严重影响消息订阅的实时性,因此亟需一种有效的方案以解决上述问题


技术实现思路

[0003]有鉴于此,本申请实施例提供了消息处理方法,以解决现有技术中存在的技术缺陷

本申请实施例同时提供了消息处理装置,一种计算设备,以及一种计算机可读存储介质

[0004]根据本申请实施例的第一方面,提供了一种消息处理方法,包括:获取订阅者提交的订阅项,并在所述订阅项中提取订阅主题和消息过滤条件;将所述消息过滤条件对应的过滤条件值分配至所述订阅主题,并根据分配结果确定所述订阅主题对应的订阅数组;根据所述订阅数组构建消息链表,以及加载所述订阅项关联的跳表结构;按照所述消息链表

所述过滤条件值和所述消息过滤条件对应的跳表节点链接关系,将所述跳表结构更新为目标跳表结构

[0005]根据本申请实施例的第二方面,提供了另一种消息处理方法,包括:获取订阅者提交的订阅项,并在所述订阅项中提取订阅主题和消息过滤条件;根据所述订阅主题确定父主题和子主题,并将所述消息过滤条件对应的过滤条件值分别分配至所述父主题和所述子主题;根据分配结果确定所述父主题和所述子主题分别对应的订阅数组,并根据所述父主题和所述子主题分别对应的订阅数组构建消息链表;加载所述订阅项关联的跳表结构,按照所述消息链表

所述过滤条件值和所述消息过滤条件对应的跳表节点链接关系,将所述跳表结构更新为目标跳表结构

[0006]根据本申请实施例的第三方面,提供了一种消息处理装置,包括:获取模块,被配置为获取订阅者提交的订阅项,并在所述订阅项中提取订阅主题和消息过滤条件;确定模块,被配置为将所述消息过滤条件对应的过滤条件值分配至所述订阅主
题,并根据分配结果确定所述订阅主题对应的订阅数组;构建模块,被配置为根据所述订阅数组构建消息链表,以及加载所述订阅项关联的跳表结构;更新模块,被配置为按照所述消息链表

所述过滤条件值和所述消息过滤条件对应的跳表节点链接关系,将所述跳表结构更新为目标跳表结构

[0007]根据本申请实施例的第四方面,提供了另一种消息处理装置,包括:获取订阅项模板,被配置为获取订阅者提交的订阅项,并在所述订阅项中提取订阅主题和消息过滤条件;分配条件值模块,被配置为根据所述订阅主题确定父主题和子主题,并将所述消息过滤条件对应的过滤条件值分别分配至所述父主题和所述子主题;构建链表模块,被配置为根据分配结果确定所述父主题和所述子主题分别对应的订阅数组,并根据所述父主题和所述子主题分别对应的订阅数组构建消息链表;更新跳表模块,被配置为加载所述订阅项关联的跳表结构,按照所述消息链表

所述过滤条件值和所述消息过滤条件对应的跳表节点链接关系,将所述跳表结构更新为目标跳表结构

[0008]根据本申请实施例的第五方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器执行所述计算机可执行指令时实现所述消息处理方法的步骤

[0009]根据本申请实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述消息处理方法的步骤

[0010]本实施例提供的消息处理方法,为了提高消息处理效率和性能的同时,具有更细粒度的消息区分处理,可以在获取订阅者提交的订阅项的情况下,在订阅项中提取出订阅主题和消息过滤条件,以此为基础将消息过滤条件对应的过滤条件值分配至订阅主题,从而实现根据分配结果确定订阅主题对应的订阅数组,此后再基于订阅数组构建消息链表,实现按照订阅项将主题关联的消息以链表形式构建,从而确保消息可以更加符合订阅项的过滤条件

此后加载订阅项关联的跳表结构,并结合得到的消息链表

过滤条件值以及过滤条件对应的跳表节点链接关系,对跳表结构进行更新,即可得到关联订阅项的目标跳表结构

实现在订阅阶段,可以结合发布者的订阅请求准确命中目标跳表结构从而完成消息的订阅,使得消息的订阅更加详细且高效,从而提高消息订阅的实时性

附图说明
[0011]图1是本申请一实施例提供的一种消息处理方法的示意图;图2是本申请一实施例提供的一种消息处理方法的流程图;图3是本申请一实施例提供的一种消息处理方法中跳表结构的示意图;图4是本申请一实施例提供的一种消息处理方法的处理流程图;图5是本申请一实施例提供的另一种消息处理方法的流程图;图6是本申请一实施例提供的一种消息处理装置的结构示意图;图7是本申请一实施例提供的另一种消息处理装置的结构示意图;
图8是本申请一实施例提供的一种计算设备的结构框图

具体实施方式
[0012]在下面的描述中阐述了很多具体细节以便于充分理解本申请

但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制

[0013]在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例

在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义

还应当理解,本申请一个或多个实施例中使用的术语“和
/
或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合

[0014]应当理解,尽管在本申请一个或多个实施例中可能采用术语第一

第二等来描述各种信息,但这些信息不应限于这些术语

这些术语仅用来将同一类型的信息彼此区分开

例如,在不脱离本申请一个或多个实施例范围本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种消息处理方法,其特征在于,包括:获取订阅者提交的订阅项,并在所述订阅项中提取订阅主题和消息过滤条件;将所述消息过滤条件对应的过滤条件值分配至所述订阅主题,并根据分配结果确定所述订阅主题对应的订阅数组;根据所述订阅数组构建消息链表,以及加载所述订阅项关联的跳表结构;按照所述消息链表

所述过滤条件值和所述消息过滤条件对应的跳表节点链接关系,将所述跳表结构更新为目标跳表结构
。2.
根据权利要求1所述的消息处理方法,其特征在于,所述按照所述消息链表

所述过滤条件值和所述消息过滤条件对应的跳表节点链接关系,将所述跳表结构更新为目标跳表结构步骤执行之后,还包括:在接收到发布者提交的发布消息的情况下,根据所述发布消息中的发布消息主题加载所述目标跳表结构;在所述目标跳表结构中读取所述过滤条件值;在所述过滤条件值与所述发布消息中的发布过滤条件匹配的情况下,对所述目标跳表结构进行遍历;根据遍历结果确定所述消息链表,加载所述消息链表对应的目标消息推送至所述发布者
。3.
根据权利要求1所述的消息处理方法,其特征在于,所述将所述消息过滤条件对应的过滤条件值分配至所述订阅主题,并根据分配结果确定所述订阅主题对应的订阅数组,包括:确定所述订阅主题存在子主题的情况下,将所述订阅主题作为父主题;确定所述消息过滤条件对应的过滤条件值,将所述过滤条件值分别分配至所述父主题和所述子主题;根据分配结果确定所述父主题对应的父订阅数组,以及所述子主题对应的子订阅数组;所述根据所述订阅数组构建消息链表,包括:根据所述父订阅数组和所述子订阅数组构建消息链表
。4.
根据权利要求3所述的消息处理方法,其特征在于,所述确定所述消息过滤条件对应的过滤条件值,将所述过滤条件值分别分配至所述父主题和所述子主题,包括:在所述消息过滤条件包含至少两个子消息过滤条件的情况下,确定所述至少两个子消息过滤条件对应的过滤条件值集合;对所述过滤条件值集合进行拆分,并将拆分后获得的过滤条件值分别分配至所述父主题和所述子主题
。5.
根据权利要求4所述的消息处理方法,其特征在于,所述根据分配结果确定所述父主题对应的父订阅数组,以及所述子主题对应的子订阅数组,包括:根据分配结果获得所述父主题对应的至少两个父订阅项目,以及所述子主题对应的至少两个子订阅项目;对所述至少两个父订阅项目进行连接,获得所述父主题对应的父订阅数组,以及对所述至少两个子订阅项目进行连接,获得所述子主题对应的子订阅数组

6.
根据权利要求4所述的消息处理方法,其特征在于,所述加载所述订阅项关联的跳表结构,包括:根据所述消息过滤条件包含子消息过滤条件的条件层级数量,加载所述订阅项关联的跳表结构,其中,所述跳表结构包含的跳表节点数量与所述条件层级数量相同;所述按照所述消息链表

所述过滤条件值和所述消息过滤条件对应的跳表节点链接关系,将所述跳表结构更新为目标跳表结构,包括:确定所述至少两个子消息过滤条件对应的条件连接关系,并作为所述消息过滤条件对应的跳表节点链接关系;按照所述消息链表

所述过滤条件值和所述跳表节点链接关系,对所述跳表结构中的每个跳表节点进行更新,根据更新结果获得目标跳表结构
。7.
根据权利要求6所述的消息处理方法,其特征在于,所述按照所述消息链表

...

【专利技术属性】
技术研发人员:马进朝柳正龙董攀峰宋平平王强
申请(专利权)人:恒生电子股份有限公司
类型:发明
国别省市:

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

1