RPC 的几个特点
- 简单地说,RPC 就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果;
- RPC 会隐藏底层的通讯细节(不需要直接处理 Socket 通讯或 Http 通讯);
- RPC 是一个请求响应模型。客户端发起请求,服务器返回响应(类似于 Http 的工作方式);
- RPC 在使用形式上像调用本地函数(或方法)一样去调用远程的函数(或方法)。
RPC 常用数据序列话协议
- Json
- Xml
- PHP serialize
- 二进制,如 Protobuf、msgpack
RPC 常用通信协议
- Http
- Tcp
- Socket
- Websocket
常见的 RPC 框架:
- Thrift
- gRpc
- Yar
- hprose
- dubbo
RPC 采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
http://www.syyong.com/architecture/Simple-understanding-of-RPC.html