什么是RPC?
远程过程调用,全称:Remote Procedure Call Protocol。
为什么要用RPC?
两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。
通过RPC,我们可以像调用本地方法一样地远程机器上的方法:
- 本地调用某个函数方法;
- 本地机器的RPC框架把这个调用信息封装起来,序列化后通过网络传输发送给远程服务器;
- 远程服务器收到调用请求后,远程机器的RPC框架反序列化获得调用信息,并根据调用信息定位到实际要执行的方法,执行完这个方法后,序列化执行结果,通过网络传输把执行结果发送回本地机器;
- 本地机器的RPC框架反序列化出执行结果,函数return这个结果。
现在流行的微服务框架(dubbo、spring cloud等),实际上就是各种各样的RPC框架。