CN111666145A - 消息队列的消息处理方法、系统和计算机设备 - Google Patents
消息队列的消息处理方法、系统和计算机设备 Download PDFInfo
- Publication number
- CN111666145A CN111666145A CN202010587936.4A CN202010587936A CN111666145A CN 111666145 A CN111666145 A CN 111666145A CN 202010587936 A CN202010587936 A CN 202010587936A CN 111666145 A CN111666145 A CN 111666145A
- Authority
- CN
- China
- Prior art keywords
- message
- target
- component
- queue
- calling
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000004519 manufacturing process Methods 0.000 claims abstract description 48
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000012544 monitoring process Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 49
- 238000013507 mapping Methods 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 230000003111 delayed effect Effects 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000002688 persistence Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 abstract description 6
- 238000010168 coupling process Methods 0.000 abstract description 6
- 238000005859 coupling reaction Methods 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例提供了一种消息队列的消息处理方法,所述方法包括:通过消息生产组件接收应用程序发起的目标调用请求;通过所述消息生产组件分析所述目标调用请求,以生成与所述目标调用请求对应的目标调用消息;通过所述消息生产组件将所述目标调用消息写入到消息队列组件中;通过所述消息消费组件监听所述消息队列组件,以获取所述消息队列组件中所述目标调用消息的执行状态;及当所述目标调用消息被执行后,通过所述消息消费组件调用目标后端接口,以获取与所述目标调用消息关联的目标响应消息。本发明实施例降低了消息生产者和消息消费者与消息队列的耦合度,提高了消息队列的安全性。
Description
技术领域
本发明实施例涉及通信领域,尤其涉及一种消息队列的消息处理方法、系统、计算机设备及计算机可读存储介质。
背景技术
随着业务量的增加和业务场景的多样化,现有应用服务器部署的应用日渐庞大和难以维护,为简化系统架构和提高处理效率,消息队列的处理方法得到普遍的应用。
本申请的发明人在研究中发现,消息队列可以通过异步处理提高系统性能,但是,目常用的消息队列仍存在以下几点不足:MQ客户端的API暴露权限太大,且对应用系统暴露太多技术细节,如客户端需要实现路由机制以及拓扑结构;消息生产者和消息消费者与MQ模型耦合度过高且对调用方的依赖较大,如消息生产者和消息消费者都需要集成客户端JAR包,对应用系统侵入性大;不利于API的实施管理,如数据的安全性以及对访问的安全控制机制。
因此,如何降低消息生产者和消息消费者与MQ的耦合度,以及在不暴露消息队列的内部技术实现细节的情况下,从而进一步的提高消息队列的安全性,成为了当前亟需解决的技术问题。
发明内容
有鉴于此,有必要提供一种消息队列的消息处理方法、系统、计算机设备及计算机可读存储介质,以解决当前消息生产者和消息消费者与消息队列的耦合度高、消息队列的内部技术实现细节容易暴露以及消息队列的安全性差等技术问题。
为实现上述目的,本发明实施例提供了一种消息队列的消息处理方法,所述方法步骤包括:
通过消息生产组件接收应用程序发起的目标调用请求;
通过所述消息生产组件分析所述目标调用请求,以生成与所述目标调用请求对应的目标调用消息;
通过所述消息生产组件将所述目标调用消息写入到消息队列组件中;
通过所述消息消费组件监听所述消息队列组件,以获取所述消息队列组件中所述目标调用消息的执行状态;及
当所述目标调用消息被执行后,通过所述消息消费组件调用目标后端接口,以获取与所述目标调用消息关联的目标响应消息。
示例性的,还包括:
预先为所述消息生产组件配置HTTP统一接口和服务映射关系;
其中,所述服务映射关系包括多个调用请求和多个消息类型之间的映射关系,所述多个消息类型包括消息同步处理、消息异步处理、消息广播以及消息延时发送。
示例性的,通过所述消息生产组件分析所述目标调用请求,以生成与所述目标调用请求对应的目标调用消息,还包括:
通过所述消息生产组件对所述目标调用请求进行安全认证;
若所述安全认证成功,则根据所述目标调用请求生成目标调用消息;及
若所述安全认证失败,则将所述目标调用消息或认证失败消息退回到所述应用程序中。
示例性的,还包括数据持久化步骤:
通过所述消息生成组件将所述目标调用消息持久化存储到数据库中;及
通过所述消息消费组件将所述目标调用消息发送到所述目标后端接口,并根据所述目标调用消息的发送状态,更新位于所述数据库中的目标调用消息的发送状态。
示例性的,还包括封装所述消息队列的步骤:
获取多个消息队列对应的多个功能逻辑,所述多个功能逻辑包括消息产生功能逻辑、消息消费功能逻辑及MQ队列功能逻辑;
对所述多个功能逻辑进行组件化处理以得到多个功能组件,所述多个功能组件包括消息生产组件、消息消费组件及MQ队列组件;及
将所述多个功能组件进行封装,以得到所述消息队列。
为实现上述目的,本发明实施例还提供了一种消息队列的消息处理系统,包括:
接收模块,用于通过消息生产组件接收应用程序发起的目标调用请求;
分析模块,用于通过所述消息生产组件分析所述目标调用请求,以生成与所述目标调用请求对应的目标调用消息;
写入模块,用于通过所述消息生产组件将所述目标调用消息写入到消息队列组件中;
监听模块,用于通过所述消息消费组件监听所述消息队列组件,以获取所述消息队列组件中所述目标调用消息的执行状态;及
调用模块,用于当所述目标调用消息被执行后,通过所述消息消费组件调用目标后端接口,以获取与所述目标调用消息关联的目标响应消息。
示例性的,还包括配置模块,所述配置模块,用于:
预先为所述消息生产组件配置HTTP统一接口和服务映射关系;
其中,所述服务映射关系包括多个调用请求和多个消息类型之间的映射关系,所述多个消息类型包括消息同步处理、消息异步处理、消息广播以及消息延时发送。
示例性的,所述分析模块,还用于:
通过所述消息生产组件对所述目标调用请求进行安全认证;
若所述安全认证成功,则根据所述目标调用请求生成目标调用消息;及
若所述安全认证失败,则将所述目标调用消息或认证失败消息退回到所述应用程序中。
为实现上述目的,本发明实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如上述的消息队列的消息处理方法的步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上述的消息队列的消息处理方法的步骤。
本发明实施例提供的消息队列的消息处理方法、系统、计算机设备及计算机可读存储介质,通过消息生产组件和消息消费组件对外提供统一接口,使得消息队列的内部技术得到保护,方便了消息队列对消息的接入和输出,降低了消息生产者和消息消费者与MQ的耦合度,提高了消息队列的安全性和对消息处理的效率。
附图说明
图1为本发明实施例消息队列的消息处理方法的流程示意图。
图2为本发明消息队列的消息处理系统实施例二的程序模块示意图。
图3为本发明计算机设备实施例三的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
以下实施例中,将以计算机设备2为执行主体进行示例性描述。
实施例一
参阅图1,示出了本发明实施例之消息队列的消息处理方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。具体如下。
步骤S100,通过消息生产组件接收应用程序发起的目标调用请求。
所述应用程序可以向消息队列发送目标调用请求,所述目标调用请求可以用于向目标调用接口获取目标响应消息。例如,数据调用方可以通过应用程序向所述消息队列发送目标调用请求,通过所述消息队列向目标调用接口获取目标响应消息。
步骤S102,通过所述消息生产组件分析所述目标调用请求,以生成与所述目标调用请求对应的目标调用消息。
示例性的,所述消息生产组件还可以用于根据所述目标调用请求生成一个与所述目标调用请求对应的目标调用消息。其中,所述消息生产组件可以根据预先约定的方式,将所述目标调用请求转化目标调用消息。其中,所述目标调用消息可以用于向所述目标后端接口获取所述目标响应消息。
示例性的,所述方法还可以进一步的包括:预先为所述消息生产组件配置HTTP统一接口和服务映射关系;其中,所述服务映射关系包括多个调用请求和多个消息类型之间的映射关系,所述多个消息类型包括消息同步处理、消息异步处理、消息广播以及消息延时发送。
所述应用程序可以通过HTTP统一接口向消息队列发送目标调用请求,所述HTTP统一接口为所述消息队列预先配置的。例如,数据调用方可以通过应用程序向所述消息队列发送目标调用请求。所述消息队列可以通过预先配置的所述HTTP统一接口和服务映射关系,确定与所述目标调用请求对应的目标调用消息,使得数据调用方无需再进行消息产生,而只需要数据调用者提供一个目标调用请求,就可以实现数据的调用。
不难理解,通过配置HTTP统一接口所述消息队列还可以对外提供统一的面向业务的API接口,隐藏内部技术实现细节。在一些实施例中,所述HTTP统一接口可以基于HTTP+RESTFUL轻量级接入方式,以提供给应用程序的应用系统更为友好的接入方式,例如,原来的消息生产者和消息消费者都需要进行集成MQ的JAR包改造,现在可以直接基于HTTP轻量级无缝接入方式,不仅提高了数据调用的速度还使得到数据调用更为简单便捷。
示例性的,所述步骤S102还可以进一步的包括:
步骤S102a,通过所述消息生产组件对所述目标调用请求进行安全认证。
为了提高所述数据调用的安全性,还可以通过所述消息生产组件对所述目标调用请求进行安全认证,以确定与所述应用程序相关联的消息调用方的身份安全性。其中,所述安全认证可以是对所述消息调用方的身份消息进行认证,例如,可以通过消息调用方登录应用程序对应的用户客户端来确定所述消息调用方的身份消息。在一些安全要求较高的场景中,所述安全认证也可以是通过短信验证、人脸识别、指纹识别、瞳孔识别等。
步骤S102b,若所述安全认证成功,则根据所述目标调用请求生成目标调用消息;及若所述安全认证失败,则将所述目标调用消息或认证失败消息退回到所述应用程序中。
示例性的,所述消息队列组件可以根据MQ(消息队列)得到,其中,所述MQ包括ActiveMQ,RabbitMQ,Kafka,RocketMQ等多种类型的消息队列。所述消息队列组件可用于应用程序与应用程序之间的通信。前目标后端接口的应用程序可以通过检索出入列队的针对应用程序的数据(消息)来通信,而无需通过专用的连接方式来链接它们,消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过消息队列来通信。消息队列的使用除去了接收和发送应用程序同时执行的要求。
示例性的,所述消息队列组件可以同时接收多个调用消息,通过异步处理提高系统性能和削峰、降低系统耦合性。其中,当同时接收到的调用消息过多时,即在高并发的情况下数据库压力剧增,使得响应速度变慢,为了避免这个问题发生可以通过预先设定消息处理量的阈值,当所述调用消息数量超过阈值时,超过的部分调用消息先进入等待状态。
步骤S104,通过所述消息生产组件将所述目标调用消息写入到消息队列组件中。
示例性的,在所述所述消息生产组件得到所述目标调用消息后,可以将所述目标调用消息写入到消息队列组件中,以便于所述消息消费组件根据所述目标调用消息从所述目标后端接口获取目标响应消息。
步骤S106,通过所述消息消费组件监听所述消息队列组件,以获取所述消息队列组件中所述目标调用消息的执行状态。
示例性的,所述消息消费组件可以通过预先设定的时间频率对所述消息队列组件监听。所述消息消费组件可以对所述消息队列组件中的目标调用消息进行实时监听,当所述消息消费组件监听到所述消息队列组件中的目标调用消息时,会响应于所述目标调用消息,即所述消息消费组件会根据所述目标调用消息,从所述目标后端接口中获取所述目标调用消息对应的所述目标响应消息。在一些实施例中,所述调用消息可以支持以下类型,并适配多种使用场景,数据调用方在使用之前只需配置好需要的调用消息类型即可:1、request/response:支持消息同步处理;2、publish/subscribe:支持消息异步处理;3、broadcast:消息广播,如跨多个系统的业务字段更新同步;4、延时消息发送:如支付订单下单30分钟后,如果用户没有支付,则系统自动取消订单。
步骤S108,当所述目标调用消息被执行后,通过所述消息消费组件调用目标后端接口,以获取与所述目标调用消息关联的目标响应消息。
在所述目标后端接口相应于所述消息队列中的调用后,消息队列会将所述目标响应消息发送到所述应用程序。示例性的,面向业务场景的API去实现需要支持的场景,可以支持消息同步、消息异步、消息广播、延迟消息等多种消息处理场景。
示例性的,所述步骤S108还可以进一步的包括数据持久化步骤:步骤S108a,通过所述消息生成组件将所述目标调用消息持久化存储到数据库中;及步骤S108b,通过所述消息消费组件将所述目标调用消息发送到所述目标后端接口,并根据所述目标调用消息的发送状态,更新位于所述数据库中的目标调用消息的发送状态。
示例性的,所述方法还可以进一步的包括封装所述消息队列的步骤:
步骤S200,获取多个消息队列对应的多个功能逻辑,所述多个功能逻辑包括消息产生功能逻辑、消息消费功能逻辑及MQ队列功能逻辑;步骤S202,对所述多个功能逻辑进行组件化处理以得到多个功能组件,所述多个功能组件包括消息生产组件、消息消费组件及MQ队列组件;及步骤S204,将所述多个功能组件进行封装,以得到所述消息队列。
示例性的,所述步骤S204可以进一步的包括:将所述多个消息队列组件封装到预先构建好的消息队列模板中,以完成消息队列的封装。
示例性的,所述多个消息队列组件包括消息生产组件、消息消费组件、以及MQ队列组件。
示例性的,所述步骤S204可以进一步的包括:为所述消息生产组件对应的应用程序配置统一的HTTP接口;和为所述消息消费组件对应目标后端接口配置统一的调用接口。
实施例二
图2为本发明消息队列的消息处理系统实施例二的程序模块示意图。消息队列的消息处理系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述消息队列的消息处理方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述消息队列的消息处理系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
接收模块200,用于通过消息生产组件接收应用程序发起的目标调用请求。
示例性的,所述应用程序可以向消息队列发送目标调用请求,所述目标调用请求可以用于向目标调用接口获取目标响应消息。例如,数据调用方可以通过应用程序向所述消息队列发送目标调用请求,通过所述消息队列向目标调用接口获取目标响应消息。
分析模块202,用于通过所述消息生产组件分析所述目标调用请求,以生成与所述目标调用请求对应的目标调用消息。
示例性的,所述应用程序可以通过HTTP统一接口向消息队列发送目标调用请求,所述HTTP统一接口为所述消息队列预先配置的。例如,数据调用方可以通过应用程序向所述消息队列发送目标调用请求。所述消息队列可以通过预先配置的所述HTTP统一接口和服务映射关系,确定与所述目标调用请求对应的目标调用消息,使得数据调用方无需再进行消息产生,而只需要数据调用者提供一个目标调用请求,就可以实现数据的调用。
不难理解,通过配置HTTP统一接口所述消息队列还可以对外提供统一的面向业务的API接口,隐藏内部技术实现细节。在一些实施例中,所述HTTP统一接口可以基于HTTP+RESTFUL轻量级接入方式,以提供给应用程序的应用系统更为友好的接入方式,例如,原来的消息生产者和消息消费者都需要进行集成MQ的JAR包改造,现在可以直接基于HTTP轻量级无缝接入方式,不仅提高了数据调用的速度还使得到数据调用更为简单便捷。
示例性的,所述分析模块202,还用于:通过所述消息生产组件对所述目标调用请求进行安全认证;若所述安全认证成功,则根据所述目标调用请求生成目标调用消息;及若所述安全认证失败,则将所述目标调用消息或认证失败消息退回到所述应用程序中。
写入模块204,用于通过所述消息生产组件将所述目标调用消息写入到消息队列组件中。
监听模块206,用于通过所述消息消费组件监听所述消息队列组件,以获取所述消息队列组件中所述目标调用消息的执行状态。
调用模块208,用于当所述目标调用消息被执行后,通过所述消息消费组件调用目标后端接口,以获取与所述目标调用消息关联的目标响应消息。
示例性的,所述消息队列的消息处理系统20还包括配置模块,所述配置模块,用于:预先为所述消息生产组件配置HTTP统一接口和服务映射关系;其中,所述服务映射关系包括多个调用请求和多个消息类型之间的映射关系,所述多个消息类型包括消息同步处理、消息异步处理、消息广播以及消息延时发送。
示例性的,所述消息队列的消息处理系统20还包括存储模块,所述存储模块,用于:通过所述消息生成组件将所述目标调用消息持久化存储到数据库中;及通过所述消息消费组件将所述目标调用消息发送到所述目标后端接口,并根据所述目标调用消息的发送状态,更新位于所述数据库中的目标调用消息的发送状态。
示例性的,所述消息队列的消息处理系统20还包括封装模块,所述封装模块,用于:获取多个消息队列对应的多个功能逻辑,所述多个功能逻辑包括消息产生功能逻辑、消息消费功能逻辑及MQ队列功能逻辑;对所述多个功能逻辑进行组件化处理以得到多个功能组件,所述多个功能组件包括消息生产组件、消息消费组件及MQ队列组件;及将所述多个功能组件进行封装,以得到所述消息队列。
示例性的,所述封装模块,还用于:将所述多个消息队列组件封装到预先构建好的消息队列模板中,以完成消息队列的封装。所述多个消息队列组件包括消息生产组件、消息消费组件、以及MQ队列组件。
示例性的,所述封装模块,还用于:为所述消息生产组件对应的应用程序配置统一的HTTP接口;和为所述消息消费组件对应目标后端接口配置统一的调用接口。
实施例三
参阅图3,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及消息队列的消息处理系统20。
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的消息队列的消息处理系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行消息队列的消息处理系统20,以实现实施例一的消息队列的消息处理方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图3仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的消息队列的消息处理系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图2示出了本发明实施例二之所述实现消息队列的消息处理系统20的程序模块示意图,该实施例中,所述消息队列的消息处理系统20可以被划分为接收模块200、分析模块202、写入模块204、监听模块206和调用模块208。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述消息队列的消息处理系统20在所述计算机设备2中的执行过程。所述程序模块200-208的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于消息队列的消息处理系统20,被处理器执行时实现实施例一的消息队列的消息处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种消息队列的消息处理方法,其特征在于,所述方法包括:
通过消息生产组件接收应用程序发起的目标调用请求;
通过所述消息生产组件分析所述目标调用请求,以生成与所述目标调用请求对应的目标调用消息;
通过所述消息生产组件将所述目标调用消息写入到消息队列组件中;
通过所述消息消费组件监听所述消息队列组件,以获取所述消息队列组件中所述目标调用消息的执行状态;及
当所述目标调用消息被执行后,通过所述消息消费组件调用目标后端接口,以获取与所述目标调用消息关联的目标响应消息。
2.如权利要求1所述的消息队列的消息处理方法,其特征在于,所述通过消息生产组件接收应用程序发起的目标调用请求,包括:
预先为所述消息生产组件配置HTTP统一接口和服务映射关系;
其中,所述服务映射关系包括多个调用请求和多个消息类型之间的映射关系,所述多个消息类型包括消息同步处理、消息异步处理、消息广播以及消息延时发送。
3.如权利要求2所述的消息队列的消息处理方法,其特征在于,通过所述消息生产组件分析所述目标调用请求,以生成与所述目标调用请求对应的目标调用消息,还包括:
通过所述消息生产组件对所述目标调用请求进行安全认证;
若所述安全认证成功,则根据所述目标调用请求生成目标调用消息;及
若所述安全认证失败,则将所述目标调用消息或认证失败消息退回到所述应用程序中。
4.如权利要求3所述的消息队列的消息处理方法,其特征在于,在所述通过所述消息生产组件分析所述目标调用请求,以生成与所述目标调用请求对应的目标调用消息的步骤之后,还包括数据持久化步骤:
通过所述消息生成组件将所述目标调用消息持久化存储到数据库中;及
通过所述消息消费组件将所述目标调用消息发送到所述目标后端接口,并根据所述目标调用消息的发送状态,更新位于所述数据库中的目标调用消息的发送状态。
5.如权利要求1所述的消息队列的消息处理方法,其特征在于,还包括预先封装消息队列,所述消息队列的封装步骤包括:
获取多个消息队列对应的多个功能逻辑,其中,所述多个功能逻辑包括消息产生功能逻辑、消息消费功能逻辑及MQ队列功能逻辑;
对所述多个功能逻辑进行组件化处理以得到多个功能组件,所述多个功能组件包括消息生产组件、消息消费组件及MQ队列组件;及
将所述多个功能组件进行封装,以得到所述消息队列。
6.一种消息队列的消息处理系统,其特征在于,包括:
接收模块,用于通过消息生产组件接收应用程序发起的目标调用请求;
分析模块,用于通过所述消息生产组件分析所述目标调用请求,以生成与所述目标调用请求对应的目标调用消息;
写入模块,用于通过所述消息生产组件将所述目标调用消息写入到消息队列组件中;
监听模块,用于通过所述消息消费组件监听所述消息队列组件,以获取所述消息队列组件中所述目标调用消息的执行状态;及
调用模块,用于当所述目标调用消息被执行后,通过所述消息消费组件调用目标后端接口,以获取与所述目标调用消息关联的目标响应消息。
7.如权利要求6所述的消息队列的消息处理系统,其特征在于,还包括配置模块,所述配置模块,用于:
预先为所述消息生产组件配置HTTP统一接口和服务映射关系;
其中,所述服务映射关系包括多个调用请求和多个消息类型之间的映射关系,所述多个消息类型包括消息同步处理、消息异步处理、消息广播以及消息延时发送。
8.如权利要求6所述的消息队列的消息处理系统,其特征在于,所述分析模块,还用于:
通过所述消息生产组件对所述目标调用请求进行安全认证;
若所述安全认证成功,则根据所述目标调用请求生成目标调用消息;及
若所述安全认证失败,则将所述目标调用消息或认证失败消息退回到所述应用程序中。
9.一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的消息队列的消息处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至5中任一项所述的消息队列的消息处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010587936.4A CN111666145A (zh) | 2020-06-24 | 2020-06-24 | 消息队列的消息处理方法、系统和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010587936.4A CN111666145A (zh) | 2020-06-24 | 2020-06-24 | 消息队列的消息处理方法、系统和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111666145A true CN111666145A (zh) | 2020-09-15 |
Family
ID=72389759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010587936.4A Pending CN111666145A (zh) | 2020-06-24 | 2020-06-24 | 消息队列的消息处理方法、系统和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666145A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800139A (zh) * | 2021-02-23 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种基于消息队列的第三方应用数据同步系统 |
CN113138868A (zh) * | 2021-04-28 | 2021-07-20 | 北京沃东天骏信息技术有限公司 | 一种消息处理方法和装置 |
CN114553932A (zh) * | 2022-04-24 | 2022-05-27 | 深圳市明源云科技有限公司 | 系统集成对接方法、装置、设备与介质 |
CN115658337A (zh) * | 2022-10-14 | 2023-01-31 | 广州市玄武无线科技股份有限公司 | 一种消息全生命周期处理方法及分布式消息系统 |
US11978017B2 (en) | 2020-10-16 | 2024-05-07 | Coupang Corp. | Systems and methods for detecting errors of asynchronously enqueued requests |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761141A (zh) * | 2013-12-13 | 2014-04-30 | 北京奇虎科技有限公司 | 一种实现消息队列的方法及装置 |
CN104378221A (zh) * | 2013-08-14 | 2015-02-25 | 沈阳中科博微自动化技术有限公司 | 应用于集成电路生产线监控系统的异步调用方法 |
US20160154678A1 (en) * | 2014-11-28 | 2016-06-02 | Canon Kabushiki Kaisha | Reverting tightly coupled threads in an over-scheduled system |
CN106130868A (zh) * | 2016-06-02 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 一种回调消息的处理方法和队列管理系统 |
CN107197015A (zh) * | 2017-05-23 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种基于消息队列系统的消息处理方法和装置 |
WO2020062793A1 (zh) * | 2018-09-29 | 2020-04-02 | 平安科技(深圳)有限公司 | 基于消息队列的请求处理方法、装置、设备及存储介质 |
-
2020
- 2020-06-24 CN CN202010587936.4A patent/CN111666145A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104378221A (zh) * | 2013-08-14 | 2015-02-25 | 沈阳中科博微自动化技术有限公司 | 应用于集成电路生产线监控系统的异步调用方法 |
CN103761141A (zh) * | 2013-12-13 | 2014-04-30 | 北京奇虎科技有限公司 | 一种实现消息队列的方法及装置 |
US20160154678A1 (en) * | 2014-11-28 | 2016-06-02 | Canon Kabushiki Kaisha | Reverting tightly coupled threads in an over-scheduled system |
CN106130868A (zh) * | 2016-06-02 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 一种回调消息的处理方法和队列管理系统 |
CN107197015A (zh) * | 2017-05-23 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种基于消息队列系统的消息处理方法和装置 |
WO2020062793A1 (zh) * | 2018-09-29 | 2020-04-02 | 平安科技(深圳)有限公司 | 基于消息队列的请求处理方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
何文涛;冯勇卫;: "中间件服务器上MDB持久化消息的探讨", 微电子学与计算机, no. 04, 5 April 2008 (2008-04-05) * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11978017B2 (en) | 2020-10-16 | 2024-05-07 | Coupang Corp. | Systems and methods for detecting errors of asynchronously enqueued requests |
CN112800139A (zh) * | 2021-02-23 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种基于消息队列的第三方应用数据同步系统 |
CN113138868A (zh) * | 2021-04-28 | 2021-07-20 | 北京沃东天骏信息技术有限公司 | 一种消息处理方法和装置 |
CN113138868B (zh) * | 2021-04-28 | 2024-04-05 | 北京沃东天骏信息技术有限公司 | 一种消息处理方法和装置 |
CN114553932A (zh) * | 2022-04-24 | 2022-05-27 | 深圳市明源云科技有限公司 | 系统集成对接方法、装置、设备与介质 |
CN115658337A (zh) * | 2022-10-14 | 2023-01-31 | 广州市玄武无线科技股份有限公司 | 一种消息全生命周期处理方法及分布式消息系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111666145A (zh) | 消息队列的消息处理方法、系统和计算机设备 | |
CN111752799B (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
CN111711697A (zh) | 消息推送方法、装置、设备及存储介质 | |
CN110674440A (zh) | 埋点数据处理方法、系统、计算机设备及可读存储介质 | |
CN109873863B (zh) | 服务的异步调用方法和装置 | |
CN110138753B (zh) | 分布式消息服务系统、方法、设备及计算机可读存储介质 | |
CN112685148B (zh) | 海量终端的异步通信方法、装置、计算机设备和存储介质 | |
CN110677453A (zh) | 基于ZooKeeper的分布式锁服务实现方法、装置、设备及存储介质 | |
CN110333916B (zh) | 请求消息处理方法、装置、计算机系统及可读存储介质 | |
CN111177776A (zh) | 多租户数据隔离方法与系统 | |
CN111813418B (zh) | 分布式链路跟踪方法、装置、计算机设备及存储介质 | |
CN112835632B (zh) | 一种端能力的调用方法、设备和计算机存储介质 | |
CN112422450A (zh) | 计算机设备、服务请求的流量控制方法及装置 | |
CN114553608A (zh) | 用于接入云平台的方法和装置 | |
CN113127929A (zh) | 数据脱敏方法、脱敏规则处理方法、装置、设备及存储介质 | |
CN110287070B (zh) | Esb专用协议接口测试方法、服务器及计算机可读存储介质 | |
CN112083945A (zh) | Npm安装包的更新提示方法、装置、电子设备及存储介质 | |
CN112148506A (zh) | 消息处理方法、装置、平台和存储介质 | |
CN113867831B (zh) | 智能设备控制方法、智能设备、存储介质及电子设备 | |
CN113360172B (zh) | 应用部署方法、装置、计算机设备及存储介质 | |
CN115629909A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN114048059A (zh) | 接口的超时时间调整方法、装置、计算机设备及存储介质 | |
CN113138861A (zh) | 基于设备服务系统的消息处理方法、系统及存储介质 | |
CN112463616A (zh) | 一种面向Kubernetes容器平台的混沌测试方法和装置 | |
CN112333262A (zh) | 数据更新提示方法、装置、计算机设备及可读存储介质 |
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 |