一种远程在多台服务器上执行函数的方法和装置与流程

文档序号:26101651发布日期:2021-07-30 18:12阅读:84来源:国知局
一种远程在多台服务器上执行函数的方法和装置与流程

本发明涉及一种远程在多台服务器上执行函数的方法和装置,属于远程控制技术领域。



背景技术:

目前市面上有很多图形化的远程工具可以实现远程在其他服务器上执行命令,这种工具的实用场景是对某一台服务器进行手动的控制,无法对多台服务器批量进行控制,更是无法进行自动化的控制。目前市面上的远程控制工具可定制性不强,如果需要多台服务器联合测试这种场景,就没有合适的工具可以使用,rpc是远程过程调用(remoteprocedurecall)的缩写形式。rpc客户程序通过接口调用rpc服务端内部定义的函数,服务端可以获得客户端执行函数的指令以及客户端传的参数,最后执行函数并返回一个返回值给客户端。因此,可以基于rpc技术来开发一种实现一台客户端主机控制多台服务器的方法。



技术实现要素:

本发明所要解决的技术问题是:提供一种远程在多台服务器上执行函数的方法和装置,可以定制化的通过rpc技术实现了一台主机对多台服务器主机的控制,可以同时在多台服务器上执行函数。

本发明为解决上述技术问题采用以下技术方案:

一种远程在多台服务器上执行函数的方法,该方法具体为:

将所有服务器通过同一局域网链接;

对于所有服务器,根据函数启动的先后顺序,在只实现控制功能的服务器上部署rpc客户端模块,在只实现服务功能的服务器上部署rpc服务端模块,在既实现控制功能又实现服务功能的服务器上部署rpc客户端模块和rpc服务端模块;

对于每个rpc服务端模块,该rpc服务端模块绑定其所在的服务器的ip和端口,暴露其绑定的ip和端口,同时暴露其所在的服务器的函数,该rpc服务端模块循环等待rpc客户端模块传来的参数指令,并在收到参数指令后执行相应的函数;

对于每个rpc客户端模块,该rpc客户端模块绑定其要控制的服务器的ip和端口,并向其要控制的服务器对应的rpc服务端模块传送参数指令,控制其要控制的服务器对应的rpc服务端模块执行该rpc服务端模块暴露出来的函数;

从而实现只部署rpc客户端模块的服务器对其他所有服务器的远程控制。

一种远程在多台服务器上执行函数的装置,该装置包括rpc客户端模块和rpc服务端模块,所述rpc客户端模块部署在实现控制功能的服务器上,rpc服务端模块部署在实现服务功能的服务器上;

对于每个rpc服务端模块,该rpc服务端模块绑定其所在的服务器的ip和端口,暴露其绑定的ip和端口,同时暴露其所在的服务器的函数,该rpc服务端模块循环等待rpc客户端模块传来的参数指令,并在收到参数指令后执行相应的函数;

对于每个rpc客户端模块,该rpc客户端模块绑定其要控制的服务器的ip和端口,并向其要控制的服务器对应的rpc服务端模块传送参数指令,控制其要控制的服务器对应的rpc服务端模块执行该rpc服务端模块暴露出来的函数;

从而实现只部署rpc客户端模块的服务器对其他所有服务器的远程控制。

一种计算机设备,包括存储器、处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述远程在多台服务器上执行函数的方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述远程在多台服务器上执行函数的方法的步骤。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

1、本发明针对同一时刻只能远程控制一台服务器,服务器之间无法通信的问题,定制化的通过rpc技术实现了一台主机对多台服务器主机的控制,可以同时在多台服务器上执行函数。

2、本发明可以用于不属于多台服务上的多服务的联合测试场景,在一台主机上操作控制多台主机。

附图说明

图1是本发明一种远程在多台服务器上执行函数的方法的实施例架构图。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本发明介绍了一种基于rpc技术来同时控制多台服务器并发送指令的方法和装置。

本发明一种远程在多台服务器上执行函数的装置主要包括以下两个模块:rpcserver模块(rpc服务端模块)和rpcclient模块(rpc客户端模块);

rpcserver模块是启动在被控制的服务器上的rpc服务端,所有要被控制的服务器上的rpcserver模块都需要绑定服务器的ip和端口,rpcserver暴露绑定的ip、端口和函数,一直循环等待rpc客户端模块传来参数,收到rpc客户端模块参数指令后执行相应的函数。

rpcclient模块是在控制其他服务器的主机上要执行的客户端,同样需要绑定要控制的服务器的ip和端口,rpcclient模块绑定要控制的rpcserver的ip和端口后,可以向rpc服务端模块传参,控制rpc服务端模块执行暴露出来的函数,控制服务器通过不同参数启动相应的服务。

本发明一种远程在多台服务器上执行函数的方法,具体实现思路如下:

系统中所有的pc主机通过同一局域网链接,保证互相可以通信。被控制主机作为rpc服务端,在指定的ip和端口开启rpc服务,rpc服务指定一个特定的方法,该方法暴露在特定端口,该方法接受一个字符串参数,根据参数的内容执行不同的命令。

控制主机作为rpc客户端,创建rpc链接,使用ip和端口链接到rpc服务端主机的服务,该rpc客户端对象可以执行rpc服务端暴露出来的方法,通过执行该方法传入参数来控制服务端主机。

一台主机远程控制多台主机就需要在被控的多台主机上部署rpc服务端,控制主机部署rpc客户端,客户端链接多台的rpc服务端并执行对应的方法发送指令以此来控制多台主机,这样就可以实现远程在多台服务器上执行命令。

如图1所示,为本发明实施例的架构图。有五台主机,测试需要在5台主机上分别执行响应的命令来启动服务。

那么可以使用本发明在pc1上启动prc客户端服务,在pc2、pc3、pc4上启动prc服务端和prc客户端服务,在pc5上启动prc服务端服务,这样可以同时串联控制多主机,进行多台服务器的联机测试等工作。

有五台主机,主机pc1用于操作员进行测试工作。测试工作依赖的四个服务server1、server2、server3、server4分别部署在pc2、pc3、pc4、pc5上面。pc2、pc3、pc4、pc5全都启动本发明的rpc服务。pc1、pc2、pc3、pc4全都可以启动本发明中的rpc客户端。pc1通过对pc2的控制来间接控制了所有服务的管理。

当pc2和pc3的rpc服务启动时,pc1发送指令给pc2,让pc2来启动server1和server2。pc2会启动自身的server1并发送指令给pc3让pc3启动server2,pc3收到指令后启动server2。类似这样可以完成所有服务的控制。从而实现通过一条指令启动所有部署在其他多台主机上的服务。

以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1