【技术实现步骤摘要】
消息处理方法及装置
[0001]本申请涉及消息订阅
,特别涉及消息处理方法及装置
。
技术介绍
[0002]随着计算机技术的发展,分布式系统设计越来越复杂化和多样化,其中支持订阅发布或生产消费的系统也得到了快速的发展
。
比如
RabbitMQ、Kafka、RocketMQ
等,都支持跨进程
、
异步的通信机制,用于上下游传递消息;由消息系统来确保消息的可靠传递
。
但是,无论是
Kafka
还是
RabbitMQ
,或者
RocketMQ
,都存在应用的局限性,其在对消息进行区分时,主要是按照主题和分区,或者按照交换机和主题模式进行消息分类处理
。
而只按照主题和分区完成消息的分类处理,其粒度较大,导致消息订阅场景下订阅处理更加复杂
。
而按照交换机和主题模型进行消息的分类处理,其效率和性能都非常低,严重影响消息订阅的实时性,因此亟需一种有效的方案以解决上述问题
。
技术实现思路
[0003]有鉴于此,本申请实施例提供了消息处理方法,以解决现有技术中存在的技术缺陷
。
本申请实施例同时提供了消息处理装置,一种计算设备,以及一种计算机可读存储介质
。
[0004]根据本申请实施例的第一方面,提供了一种消息处理方法,包括:获取订阅者提交的订阅项,并在所述订阅项中提取订阅主题和消息过滤条件;将所述消息过滤条件对 ...
【技术保护点】
【技术特征摘要】
1.
一种消息处理方法,其特征在于,包括:获取订阅者提交的订阅项,并在所述订阅项中提取订阅主题和消息过滤条件;将所述消息过滤条件对应的过滤条件值分配至所述订阅主题,并根据分配结果确定所述订阅主题对应的订阅数组;根据所述订阅数组构建消息链表,以及加载所述订阅项关联的跳表结构;按照所述消息链表
、
所述过滤条件值和所述消息过滤条件对应的跳表节点链接关系,将所述跳表结构更新为目标跳表结构
。2.
根据权利要求1所述的消息处理方法,其特征在于,所述按照所述消息链表
、
所述过滤条件值和所述消息过滤条件对应的跳表节点链接关系,将所述跳表结构更新为目标跳表结构步骤执行之后,还包括:在接收到发布者提交的发布消息的情况下,根据所述发布消息中的发布消息主题加载所述目标跳表结构;在所述目标跳表结构中读取所述过滤条件值;在所述过滤条件值与所述发布消息中的发布过滤条件匹配的情况下,对所述目标跳表结构进行遍历;根据遍历结果确定所述消息链表,加载所述消息链表对应的目标消息推送至所述发布者
。3.
根据权利要求1所述的消息处理方法,其特征在于,所述将所述消息过滤条件对应的过滤条件值分配至所述订阅主题,并根据分配结果确定所述订阅主题对应的订阅数组,包括:确定所述订阅主题存在子主题的情况下,将所述订阅主题作为父主题;确定所述消息过滤条件对应的过滤条件值,将所述过滤条件值分别分配至所述父主题和所述子主题;根据分配结果确定所述父主题对应的父订阅数组,以及所述子主题对应的子订阅数组;所述根据所述订阅数组构建消息链表,包括:根据所述父订阅数组和所述子订阅数组构建消息链表
。4.
根据权利要求3所述的消息处理方法,其特征在于,所述确定所述消息过滤条件对应的过滤条件值,将所述过滤条件值分别分配至所述父主题和所述子主题,包括:在所述消息过滤条件包含至少两个子消息过滤条件的情况下,确定所述至少两个子消息过滤条件对应的过滤条件值集合;对所述过滤条件值集合进行拆分,并将拆分后获得的过滤条件值分别分配至所述父主题和所述子主题
。5.
根据权利要求4所述的消息处理方法,其特征在于,所述根据分配结果确定所述父主题对应的父订阅数组,以及所述子主题对应的子订阅数组,包括:根据分配结果获得所述父主题对应的至少两个父订阅项目,以及所述子主题对应的至少两个子订阅项目;对所述至少两个父订阅项目进行连接,获得所述父主题对应的父订阅数组,以及对所述至少两个子订阅项目进行连接,获得所述子主题对应的子订阅数组
。
6.
根据权利要求4所述的消息处理方法,其特征在于,所述加载所述订阅项关联的跳表结构,包括:根据所述消息过滤条件包含子消息过滤条件的条件层级数量,加载所述订阅项关联的跳表结构,其中,所述跳表结构包含的跳表节点数量与所述条件层级数量相同;所述按照所述消息链表
、
所述过滤条件值和所述消息过滤条件对应的跳表节点链接关系,将所述跳表结构更新为目标跳表结构,包括:确定所述至少两个子消息过滤条件对应的条件连接关系,并作为所述消息过滤条件对应的跳表节点链接关系;按照所述消息链表
、
所述过滤条件值和所述跳表节点链接关系,对所述跳表结构中的每个跳表节点进行更新,根据更新结果获得目标跳表结构
。7.
根据权利要求6所述的消息处理方法,其特征在于,所述按照所述消息链表
、
...
【专利技术属性】
技术研发人员:马进朝,柳正龙,董攀峰,宋平平,王强,
申请(专利权)人:恒生电子股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。