[发明专利]实现远程调用的方法及装置有效
| 申请号: | 201810226550.3 | 申请日: | 2018-03-19 |
| 公开(公告)号: | CN108347445B | 公开(公告)日: | 2021-04-27 |
| 发明(设计)人: | 张李攀;陈少杰;张文明 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
| 代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
| 地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 实现 远程 调用 方法 装置 | ||
本发明实施例提供了一种实现远程调用的方法及装置,所述方法包括:将PHP进程的RPC调用请求信息添加到公用POSIX消息队列,所述RPC调用请求信息中携带有所述PHP进程的进程ID;通过预设的proxy代理服务将所述公用POSIX消息队列中的所述RPC调用请求信息发送到消息中转服务器,以供所述消息中转服务器在执行相应的方法调用后返回RPC响应消息,所述RPC响应消息中携带有所述PHP进程的进程ID;根据所述进程ID将所述RPC响应消息添加到所述PHP进程对应的专用POSIX消息队列;从所述专用POSIX消息队列中提取所述RPC响应消息。本发明实现了非阻塞式的RPC调用方式,相对于传统的阻塞式的RPC调用方式,有效地提高RPC调用性能。
技术领域
本发明涉及计算机技术领域,尤其涉及一种实现远程调用的方法及装置。
背景技术
PHP(Hypertext Preprocessor,超文本预处理器)是一种创建动态交互性站点的强有力的服务器端脚本语言,现有技术中,由于脚本语言的特性,PHP在调用RPC(RemoteProcedure Call,远程过程调用)时通常采用的是阻塞的调用方式。但是,阻塞式调用的性能很低,无法应对高并发的调用场景。而且,每当有通信协议更改或者PHP配置的修改时,都需要重启PHP,进而导致整个PHP服务不可用。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的实现远程调用的方法及装置。
本发明的一个方面,提供了一种实现远程调用的方法,所述方法包括:
将PHP进程的RPC调用请求信息添加到公用POSIX消息队列,所述RPC调用请求信息中携带有所述PHP进程的进程ID;
通过预设的proxy代理服务将所述公用POSIX消息队列中的所述RPC调用请求信息发送到消息中转服务器,以供所述消息中转服务器在执行相应的方法调用后返回RPC响应消息,所述RPC响应消息中携带有所述PHP进程的进程ID;
根据所述进程ID将所述RPC响应消息添加到所述PHP进程对应的专用POSIX消息队列;
从所述专用POSIX消息队列中提取所述RPC响应消息。
其中,在所述将PHP进程的RPC调用请求信息添加到公用POSIX消息队列之前,所述方法还包括:
预先在所述PHP进程和所述消息中转服务器之间设置所述proxy代理服务。
其中,所述通过预设的proxy代理服务将所述公用POSIX消息队列中的所述RPC调用请求信息发送到消息中转服务器,包括:
通过预设的proxy代理服务从所述公用POSIX消息队列中提取所述RPC调用请求信息,根据所述RPC调用请求信息生成RPC网络协议包,并基于所述proxy代理服务与所述消息中转服务器之间的TCP长连接将所述RPC网络协议包发送到消息中转服务器。
其中,所述基于所述proxy代理服务与所述消息中转服务器之间的TCP长连接将所述RPC网络协议包发送到消息中转服务器,具体包括:
根据负载均衡,从当前运行的各消息中转服务器中选择目标消息中转服务器;
基于所述proxy代理服务与所述目标消息中转服务器之间的TCP长连接将所述RPC网络协议包发送到所述目标消息中转服务器。
其中,所述proxy代理服务采用单线程多进程的工作模式。
本发明的另一个方面,提供了一种实现远程调用的装置,所述装置包括:
PHP扩展模块,用于将PHP进程的RPC调用请求信息添加到公用POSIX消息队列,所述RPC调用请求信息中携带有所述PHP进程的进程ID;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810226550.3/2.html,转载请声明来源钻瓜专利网。





