初识RPC | 青训营笔记

90 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天

今天学习有关rpc的基本知识

一、理解RPC。

RPC称Remote Procedure Calls 远程函数调用。简单点理解就是调用远程不同服务器上的服务。

本地函数调用:通过函数指针,找到对应的函数进行压栈然后进栈执行的过程。

远程函数调用需要远程的调用不同服务器的api则需要面临的问题如下:

1. 函数映射 2. 数据转换成字节流 3. 网络传输数据

RPC概念模型:

image.png 从概念模型可以看出一个PRC调用有两个对象一个是调用者,一个是被调用者调用者将本地将要传递的参数打包,通过网络传输给被调用者,被调用者接收到数据包,然后解包,得到对应的函数的参数,执行完函数后将返回值进行打包,同样通过网络传输将返回数据包发送给调用者,调用者解包,得到函数的返回值......

二、RPC的调用过程

IDL文件

IDL文件是接口描述文件,使得在不同平台运行的对象和不同语言编写的程序可以画像通信,可以类比于人与人之间沟通的语言。

生成代码

通过编译器把IDL文件转换成对应语言的静态库。

编解码:

从内存的表示到字节序列的转化称为编码,反之为解码,也常叫做,序列化和反序列化。

通信协议

规范数据在网络中传输的内容和格式。

网络传输

成熟的基于TCP/IP的网络库。

三、RPC的优缺点

优点:

1. 单一职责,利于分工和合作

2. 可扩展性高,资源使用率更优

3. 故障隔离,服务整体可靠性更高

缺点:

1. 网络的不稳定带来服务的不稳定

2. 请求过多导致,服务无法及时处理

3. 服务器宕机后的难以应对