一种通用的消息队列处理引擎实现方法和系统技术方案

技术编号:39601287 阅读:15 留言:0更新日期:2023-12-03 20:01
本发明专利技术提供一种通用的消息队列处理引擎实现方法,包括:消息生产者和消息队列处理引擎建立连接,推送第一业务数据给所述消息队列处理引擎;消息队列处理引擎将第一业务数据发送给消息生产引擎;消息生产引擎根据映射规则对第一业务数据进行解析并转换为消息数据,将消息数据推送到消息队列适配装置;消息队列适配装置监听信道,根据消息数据和消息队列中间件的连接关系,查找对应的消息消费引擎,将消息数据转发给消息消费引擎;消息消费引擎根据映射规则对消息数据进行解析并转换为消费者所需的第二业务数据,将第二业务数据推送给消息消费者

【技术实现步骤摘要】
一种通用的消息队列处理引擎实现方法和系统


[0001]本专利技术涉及计算机
,具体涉及一种通用的消息队列处理引擎实现方法和系统


技术介绍

[0002]在现有技术中,不同服务之间执行业务数据异步交互一般采用消息队列如:
RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ、Kafka
等中间件来实现,利用消息队列的发布订阅模式,消息生产者不用关心消息消费者的消费模式,只要将数据成功推入虚拟的通道
(
主题或队列
)
即可,而不同的消息消费者可以订阅或监听该通道,并且对同一消息数据执行不同方式的业务处理

如此,可以将消息的生产者与消息的消费者进行分离以达到应用解耦的目的

[0003]目前,在行业应用中采用消息队列执行数据异步交互对接时,采用的对接思路还是类似
API
接口对接的思路,通过定制化系统开发的模式完成对接,其步骤如下:
[0004]1、
约定采用的消息队列中间件的类型与版本;
[0005]2、
约定消息数据结构与要推入的虚拟通道
(
主题或队列
)。
[0006]3、
消息生产者按照约定的消息数据结构组装消息,推入消息队列指定的虚拟通道

[0007]4、
消息消费者订阅或监听该通道获取消息数据,通过定制化编码解析消息数据并转换消息数据为所需业务数据

[0008]但是,基于定制化开发思想的对接方法在实践中因为缺乏足够的灵活性,已经暴露出越来越多的缺陷

这主要是因为消息队列相关各方的业务是基于约定执行的,一旦涉及变更,那么消息队列相关各方的定制化系统都需要改动,属于牵一发而动全身

比如:
[0009]1、
一旦约定了消息队列中间件的类型与版本,那么就难以轻易更改消息队列中间件,因为不同消息中间件的对接方法不同,一旦更改就要求消息队列相关各方修改相关的消息队列连接方式

[0010]2、
一旦约定消息数据结构,那么就难以轻易更改,因为消息队列相关各方的业务是基于约定结构的消息数据执行处理,一旦更改就要求消息队列相关各方修改相关的消息处理方式

[0011]而由于业务系统发展模式的差异,不同阶段对于消息队列的性能需求不同需要更换消息队列中间件或者业务发生变更需要修改消息数据结构,这时就会发现传统的定制化编码的对接技术方案对于消息队列的任何变更都存在难以化解的缺陷


技术实现思路

[0012]有鉴于此,本专利技术提供一种通用的灵活的异步消息队列处理引擎的实现方法与系统

[0013]根据本专利技术的一个方面,提供一种通用的消息队列处理引擎实现方法,包括:
S101
:消息生产者和消息队列处理引擎建立连接,并推送第一业务数据给所述消息队列处理引擎;
S102
:所述消息队列处理引擎将所述第一业务数据发送给消息生产引擎;
S103
:所述消息生产引擎根据映射规则对所述第一业务数据进行解析并转换为消息数据,并将所述消息数据推送到消息队列适配装置;
S104
:所述消息队列适配装置监听信道,根据所述消息数据和消息队列中间件的连接关系,查找对应的消息消费引擎,将所述消息数据转发给所述消息消费引擎;
S105
:所述消息消费引擎根据映射规则对所述消息数据进行解析并转换为消费者所需的第二业务数据,并将所述第二业务数据推送给消息消费者

[0014]进一步地,所述
S104
还包括:
S104.1
:获取所述消息数据和消息队列中间件的连接关系;
S104.2
:根据所述消息数据中描述的信息在所述消息队列中间件中创建虚拟通道;
S104.3
:所述消息队列适配装置将所述消息数据推送到所述消息队列中间件指定的虚拟通道

[0015]进一步地,所述消息队列中间件包括至少一个不同类型的中间件

[0016]进一步地,所述消息数据和消息队列中间件的连接关系通过映射规则确定

[0017]进一步地,所述不同类型的中间件包括不同的功能,且所述不同类型的中间件操控方式不同

[0018]根据本专利技术的第二方面,提供一种通用的消息队列处理引擎实现系统,其特征在于,包括:消费生产者模块:用于和消息队列处理引擎建立连接,并推送第一业务数据给所述消息队列处理引擎;消息队列处理引擎:和所述消费生产者模块连接,用于根据映射规则对所述第一业务数据进行解析并转换为消息数据,监听信道,根据所述消息数据和消息队列中间件的连接关系,查找对应的消息消费引擎,根据映射规则对所述消息数据进行解析并转换为消费者所需的第二业务数据;消息消费者模块:和所述消息队列处理引擎连接,用于接收所述第二业务数据

[0019]进一步地,所述消息队列处理引擎包括:消息生产引擎:用于接受第一业务数据,根据映射规则对所述第一业务数据进行解析并转换为消息数据;消息队列适配装置:和所述消息生产引擎连接,用于监听信道,根据所述消息数据和消息队列中间件的连接关系,查找对应的消息消费引擎;消息消费引擎:和所述消息队列适配装置连接,根据映射规则对所述消息数据进行解析并转换为消费者所需的第二业务数据

[0020]进一步地,所述消息队列中间件包括至少一个不同类型的中间件

[0021]进一步地,所述消息数据和消息队列中间件的连接关系通过映射规则确定

[0022]进一步地,所述不同类型的中间件包括不同的功能,且所述不同类型的中间件操控方式不同

[0023]本专利技术针对现有技术存在的缺陷,提出一种通用的灵活的异步消息处理引擎的实现方法与系统,集成了现有市场上各种消息队列中间件产品的操作方法,并且提供一种规则引擎用于对消息生产者生产的消息数据与消息消费者订阅的消息数据进行处理,以解决在遇到上述变更问题时,消息队列的相关各方无需改动系统,仅需调整规则就能完成对变更的适配

[0024]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后

附图说明
[0025]构成本专利技术的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定

在附图中:
[0026]图1示出了本专利技术的方法流程图;
[0027]图2示出了本专利技术的消息队列处理引擎方法流程图;
[0028]图3示出了本专利技术的系统框图;
[0029]图4示出了本专利技术的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种通用的消息队列处理引擎实现方法,其特征在于,包括:
S101
:消息生产者和消息队列处理引擎建立连接,并推送第一业务数据给所述消息队列处理引擎;
S102
:所述消息队列处理引擎将所述第一业务数据发送给消息生产引擎;
S103
:所述消息生产引擎根据映射规则对所述第一业务数据进行解析并转换为消息数据,并将所述消息数据推送到消息队列适配装置;
S104
:所述消息队列适配装置监听信道,根据所述消息数据和消息队列中间件的连接关系,查找对应的消息消费引擎,将所述消息数据转发给所述消息消费引擎;
S105
:所述消息消费引擎根据映射规则对所述消息数据进行解析并转换为消费者所需的第二业务数据,并将所述第二业务数据推送给消息消费者
。2.
如权利要求1所述的方法,其特征在于,所述
S104
还包括:
S104.1
:获取所述消息数据和消息队列中间件的连接关系;
S104.2
:根据所述消息数据中描述的信息在所述消息队列中间件中创建虚拟通道;
S104.3
:所述消息队列适配装置将所述消息数据推送到所述消息队列中间件指定的虚拟通道
。3.
如权利要求2所述的方法,其特征在于,所述消息队列中间件包括至少一个不同类型的中间件
。4.
如权利要求2所述的方法,其特征在于,所述消息数据和消息队列中间件的连接关系通过映射规则确定
。5.

【专利技术属性】
技术研发人员:廖凌浩巴战辉吕海涛芦玉支开鑫
申请(专利权)人:中电信数智科技有限公司
类型:发明
国别省市:

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

1