一、 RPC 介绍
RPC(Remote Procedure Call),远程过程调用
难点
- 函数映射
- 数据流 ==> 字节流
- 网络传输 ==> TCP/UDP
二、 RPC 过程
- IDL (Interface Description Language)
- 生成代码
- 编解码
- 通信协议
- 网络传输
- 实现函数映射
- 定义 IDL 文件
- 编译工具生成 stub 桩文件(相当于静态库)
- 实现网络传输
- 序列化
- 将请求参数、返回结果进行 encode && decode
- 根据 RPC 协议约定的数据痛、 元数据、 消息体等,保证 IDL 能使请求与返回结果一一映射
- 基于成熟的网络哭进行 TCP/UDP 传输
三、 RPC优缺点
- 优点
- 单一职责,有利于分工协作和运维开发
- 可扩展性强,资源利用率高
- 故障隔离,服务整体可靠性高
- 缺点
- 服务宕机
- 调用过程中的网络异常,如何保证消息的可达性
- 请求量突增导致服务无法处理的应对措施