RPC 定义
RPC(Remote Procedure Call)即远程过程调用,指被调用方法的具体实现不在程序运行本地,而是在别的某个地方。主要应用于不同的系统之间的远程通信和相互调用。
如 A 调用 B 提供的 remoteAdd 方法:
- 1、首先A与B之间建立一个TCP连接
- 2、然后A把需要调用的方法名(这里是remoteAdd)以及方法参数(10, 20)序列化成字节流发送出去;
- 3、B接受A发送过来的字节流,然后反序列化得到目标方法名,方法参数,接着执行相应的方法调用(可能是localAdd)并把结果30返回;
- 4、A接受远程调用结果
有些远程调用选择比较底层的 socket 协议,有些远程调用选择比较上层的 HTTP 协议。
远程调用的好处:
解耦:
当方法提供者需要对方法内实现修改时,调用者完全感知不到,不用做任何变更;
这种方式在跨部门,跨公司合作的时候经常用到,并且方法的提供者我们通常称为: 服务的暴露方
这里使用 PHP Socket 来创建一个服务端和客户端,目录结构如下:
RpcServer.php