[发明专利]基于消息队列的并发远程调用系统及方法在审
申请号: | 202211051281.4 | 申请日: | 2022-08-31 |
公开(公告)号: | CN115454667A | 公开(公告)日: | 2022-12-09 |
发明(设计)人: | 许晓笛;陈磊 | 申请(专利权)人: | 浪潮软件集团有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 孙园园 |
地址: | 250100 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 消息 队列 并发 远程 调用 系统 方法 | ||
1.一种基于消息队列的并发远程调用系统,其特征在于,该系统包括在调用方和被调用方的RPC单元之间设置有消息中间件,消息中间件用于调用双方的通信渠道,对消息进行暂存和管理,并对收发消息的双方进行解耦;
RPC单元包括回调注册模块、调用转换模块、消息分发模块和消息接收模块;
回调注册模块用于记录调用方的回调信息;
调用转换模块用于将调用信息转换为消息;
消息分发模块用于将收到的消息分发至目的线程;
消息接收模块用于监听消息中间件中的消息队列,接收消息。
2.根据权利要求1所述的基于消息队列的并发远程调用系统,其特征在于,所述消息中间件接收到消息后,将消息暂存在计算机内存中;消息中间件将消息按照发送的时间,组织成一个队列,接收方获取消息时,按照时间顺序获取消息。
3.根据权利要求1所述的基于消息队列的并发远程调用系统,其特征在于,所述回调注册模块采用HashMap数据结构记录调用方的回调信息;
其中,HashMap是一种由Key和Value组成的键值对型数据结构;在回调注册模块中,Key表示调用ID,Value表示回调函数指针;具体如下:
当调用发送时,调用方会生成一个调用ID,放入消息中;
当调用结果返回后,消息分发模块会解析消息中的调用ID,并找到HashMap中相关的键值对,即可找到回调函数的指针;
通过回调函数指针,调用回调函数。
4.根据权利要求1所述的基于消息队列的并发远程调用系统,其特征在于,所述调用转换模块使用JSON规范将PRC单元调用信息转换为字符串,字符串作为消息体,同时将调用ID作为消息头,使字符串和调用ID组成一个完整的消息。
5.根据权利要求1所述的基于消息队列的并发远程调用系统,其特征在于,所述消息分发模块收到消息后,访问回调注册模块中的HashMap,找到回调函数的指针,通过回调函数指针,调用回调函数。
6.根据权利要求1-5中任一项所述的基于消息队列的并发远程调用系统,其特征在于,所述消息接收模块是一个实现了AMQP协议的消息客户端,使用Pull模式定时访问消息中间件,将消息中间件暂存的消息拉取至本地。
7.根据权利要求6项所述的基于消息队列的并发远程调用系统,其特征在于,该系统的工作过程具体如下:
(1)、调用方调用线程将自身信息注册在回调注册模块;
(2)、调用方的调用转换模块将调用信息转换为消息;
(3)、将消息发送至消息中间件;
(4)、被调用方的消息接收模块从消息中间件接收消息;
(5)、被调用方的消息分发模块确定被调用线程,执行调用;
(6)、被调用线程处理业务;
(7)、被调用线程处理完业务后,将调用结果回传至被调用方的调用转换模块;
(8)、被调用方的调用转换模块将调用结果转换为消息,发送至消息中间件;
(9)、调用方的消息接收模块收到消息;
(10)、调用方的消息分发模块根据之前注册的回调信息,找到初始的调用线程;
(11)、调用线程收到调用结果,调用完成。
8.一种的基于消息队列的并发远程调用方法,其特征在于,该方法是在调用方和被调用方之间引入消息中间件,作为调用双方的通信渠道,并将RPC单元调用转换为消息,通过消息的发送和回发发送调用信息和回发调用结果;具体如下:
消息中间件接收到消息后,将消息暂存在计算机内存中;
消息中间件将消息按照发送的时间,组织成一个队列,接收方获取消息时,按照时间顺序获取消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮软件集团有限公司,未经浪潮软件集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211051281.4/1.html,转载请声明来源钻瓜专利网。