什么是RPC
RPC(Remote Procedure Call),即远程过程调用,是一种进程间通信的模式。RPC允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需关注细节(发现,编码,传输等)。
RPC是一种服务器-客户端(Client/Server)模式,提供RPC服务的服务器在行为上和一般都HTTP服务器没有很大差异。
RPC调用的基本流程
- 客户端调用客户端stub(client stub)。这个调用是在本地,并将调用参数push到栈(stack)中。
- 客户端stub(client stub)将这些参数包装(序列化),并通过系统调用发送到服务端机器。打包的过程叫 marshalling。(常见方式:XML、JSON、二进制编码)
- 客户端本地操作系统发送信息至服务器。(可通过自定义TCP协议或HTTP传输)
- 服务器系统将信息传送至服务端stub(server stub)。
- 服务端stub(server stub)解析信息。该过程叫 unmarshalling。
- 服务端stub(server stub)调用程序,并通过类似的方式返回给客户端。
文档信息
- 本文作者:Iven Li
- 本文链接:https://lutcraft.github.io/2023/08/06/%E4%BB%8E0%E5%BC%80%E5%A7%8B%E7%9A%84RPC%E6%A1%86%E6%9E%B6%E5%AE%9E%E7%8E%B01/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)