RPC到底是个啥?举个例子告诉你
时间:2021-09-13 14:00:00
手机看文章
扫描二维码
随时随地手机看文章
[导读]深入解析RPC的基本原理
RPC(Remote Procedure Call),是一个大家既熟悉又陌生的词,只要涉及到通信,必然需要某种网络协议。我们很可能用过HTTP,那么RPC又和HTTP有什么区别呢?RPC还有什么特点,常见的选型有哪些?
1. RPC是什么
RPC可以分为两部分:用户调用接口 具体网络协议。前者为开发者需要关心的,后者由框架来实现。举个例子,我们定义一个函数,我们希望函数如果输入为“Hello World”的话,输出给一个“OK”,那么这个函数是个本地调用。如果一个远程服务收到“Hello World”可以给我们返回一个“OK”,那么这是一个远程调用。我们会和服务约定好远程调用的函数名。因此,我们的用户接口就是:输入、输出、远程函数名,比如用 SRPC 开发的话,client端的代码会长这样:
int main()
{
Example::SRPCClient client(IP, PORT);
EchoRequest req; // 用户自定义的请求结构
EchoResponse resp; // 用户自定义的回复结构
req.set_message("Hello World");
client.Echo(