01 基本概念
- 本地函数调用和 RPC 调用的区别: 函数映射、数据转成字节流、网络传输
- RPC 的概念模型: User、User-Stub、RPC-Runtime、Server-Stub、Server
- 一次 PRC 的完整过程,并讲解了 RPC 的基本概念定义
- RPC 带来好处的同时也带来了不少新的问题,将由 RPC 框架来解决
- RPC优点:1.单一职责,有利于分工协作和运维开发 2.可扩展性强,资源使用率更优 3.故障隔离,服务的整体可靠性更高
- 弊端:服务宕机、网络异常、请求量突增
02 分层设计
-
RPC 框架主要核心有三层: 编解码层、协议层和网络通信层
-
二进制编解码的实现原理和选型要点 要点:兼容性、通用性、性能
-
协议的一般构造,以及框架协议解析的基本流程
- LENGTH:数据包大小,不包含自身
- HEADER MAGIC: 标识版本信息,协议解析时候快速校验
- SEQUENCE NUMBER: 表示数据包的 seqID可用于多路复用,单连接内递增
- HEADER SIZE: 头部长度,从第14个字节开始计算一直到 PAYLOAD前
- PROTOCOL ID:编解码方式,有 Binary 和Compact 两种
- TRANSFORM ID: 压缩方式,如 zlib 和snappyINFO ID: 传递一些定制的 meta 信息
- PAYLOAD: 消息体
- 网络库的基本架构,以及选型时要考察的核心指标
- 提供易用 API
- 封装底层 Socket API、连接管理和事件分发
- 功能
- 协议支持: tcp、udp 和 uds 等
- 优雅退出、异常处理等
- 性能
- 应用层 buffer 减少 copy
- 高性能定时器、对象池等