深入浅出RPC框架(上) | 青训营笔记

86 阅读1分钟

01 基本概念

  1. 本地函数调用和 RPC 调用的区别: 函数映射、数据转成字节流、网络传输
  2. RPC 的概念模型: User、User-Stub、RPC-Runtime、Server-Stub、Server
  3. 一次 PRC 的完整过程,并讲解了 RPC 的基本概念定义

image.png

  1. RPC 带来好处的同时也带来了不少新的问题,将由 RPC 框架来解决
  • RPC优点:1.单一职责,有利于分工协作和运维开发 2.可扩展性强,资源使用率更优 3.故障隔离,服务的整体可靠性更高
  • 弊端:服务宕机、网络异常、请求量突增

02 分层设计

  1. RPC 框架主要核心有三层: 编解码层、协议层和网络通信层

  2. 二进制编解码的实现原理和选型要点 要点:兼容性、通用性、性能

  3. 协议的一般构造,以及框架协议解析的基本流程

  • LENGTH:数据包大小,不包含自身
  • HEADER MAGIC: 标识版本信息,协议解析时候快速校验
  • SEQUENCE NUMBER: 表示数据包的 seqID可用于多路复用,单连接内递增
  • HEADER SIZE: 头部长度,从第14个字节开始计算一直到 PAYLOAD前
  • PROTOCOL ID:编解码方式,有 Binary 和Compact 两种
  • TRANSFORM ID: 压缩方式,如 zlib 和snappyINFO ID: 传递一些定制的 meta 信息
  • PAYLOAD: 消息体
  1. 网络库的基本架构,以及选型时要考察的核心指标
  • 提供易用 API
    • 封装底层 Socket API、连接管理和事件分发
  • 功能
    • 协议支持: tcp、udp 和 uds 等
    • 优雅退出、异常处理等
  • 性能
    • 应用层 buffer 减少 copy
    • 高性能定时器、对象池等