什么是RPC?
RPC的全称是:Remote Procedure Call,远程过程调用。它的作用就是允许一台机器上的程序去调用另一台机器上的程序,而不会意识到这个过程是远程的,也就是程序员不需要知道网络通信中的任何细节。
为什么要使用RPC?
-
提高开发效率:程序员不需要再关心网络中实现的细节,可以直接像调用本地函数一样去调用远程的服务
-
跨语言的通信:支持不同的开发语言,也就是说不同语言编写的服务之间也可以通过RPC进行调用
RPC就像是一个中介,开发者不需要知道中介干了什么,而只需要将需要使用的东西告诉中介,中介自然会把它送过来。
RPC是如何工作的?
- 客户端以本地调用的方式去调用服务
- 传送到stub,将方法、参数等组装起来进行网络传输
- 找到服务端的地址,并将该信息传输到服务端
- 服务端接收到之后进行信息的解码
- stub根据解码的结果去调用本地服务,再将返回的结果打包成信息发送给客户端
- 客户端接收到之后就进行解码并返回到本地进程中去