懂得RPC原理才能更好地实现 | 青训营笔记

44 阅读2分钟

这是我参与[第五届青训营]伴学笔记创作活动的第10天 主要有三部分的内容

  • RPC的基本概念
  • RPC框架的分层设计
  • 衡量RPC框架的一些核心指标

RPC框架分层设计

  • 编解码层
    • 数据格式
    • 选项
  • 传输协议层
    • 消息切分
    • 协议构造
  • 网络通信层

    • 网络库
    • 核心指标
      • 吞吐高
      • 延迟低

RPC框架的核心指标:

  • 稳定性
    • 保障策略
      • 熔断
      • 限流
      • 超时
    • 请求成功率
      • 负载均衡
      • 重试
    • 长尾请求
      • BackupRequest
  • 易用性
    • 开箱即用
    • 周边工具

扩展性

观测性:

  • Log
  • Metric
  • Tracing
  • 内置观测性服务

高性能:

基本概念

RPC和本地函数的区别?

本地函数是本地调用

RPC是远程函数调用

相比于本地函数调用,RPC调用需要解决的问题

  • 函数映射
  • 数据转换成字节流:传输前后都要进行数据转换
  • 网络传输:远程调用需要进行网络传输

RPC概念模型

User User-Stub RPC-Runtime Server-Stub Server

一次RPC的完整过程相关概念

IDL文件:声明有哪些方法,方法的参数

生成代码:把IDL文件转成对应的语言代码

编码:内存表示到字节序列。也叫做序列化(二进制编码 语言编码 文本格式)

解码:字节序列到内存表示。也叫做反序列化

通信协议:数据在网络中传输内容和格式

网络传输:通常基于TCP/UDP传输

RPC的好处?

可扩展性强

单一职责,易于分工协作和运维开发

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

作业

行业内各个流行的RPC框架的优劣对比

关于RPC框架。业界有哪些新的趋势和概念

了解微服务的新趋势ServiceMesh,以及RPC框架和ServiceMesh的关系

参考

介绍了RPC的核心指标以及RPC框架Kitex优化实践【后端专场 学习资料五】第五届字节跳动青训营 - 掘金 (juejin.cn)