RPC原理与实现| 青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天
一、本堂课重点内容:
- RPC 相关的基本概念
- RPC 框架的分层设计
- 衡量 RPC 框架的一些核心指标
- 字节内部 RPC 框架 Kitex 实践分享
二、详细知识点介绍:
RPC 相关的基本概念
- 本地函数调用和RPC调用的区别:函数映射、数据转成字节流、网络传输
- RPC的概念模型:User、User-Stub、RPC-Runtime、Server-Stub、Server
- 一次PRC的完整过程,并讲解了RPC的基本概念定义
- RPC 带来好处的同时也带来了不少新的问题,将由RPC框架来解决
RPC 框架的分层设计
- RPC框架主要核心有三层:编解码层、协议层和网络通信层
- 二进制编解码的实现原理和选型要点
- 协议的一般构造,以及框架协议解析的基本流程
- Socket API的调用流程,以及选型网络库时要考察的核心指标
衡量 RPC 框架的一些核心指标
- 框架通过中间件来注入各种服务治理策略,保障服务的稳定性
- 通过提供合理的默认配置和方便的命令行工具可以提升框架的易用性
- 框架应当提供丰富的扩展点,例如核心的传输层和协议层
- 观测性除了传统的Log、Metric和Tracing 之外,内置状态暴露服务也很有必要
- 性能可以从多个层面去优化,例如选择高性能的编解码协议和网络库
字节内部 RPC 框架 Kitex 实践分享
- 介绍了Kitex的整体架构
- 介绍了自研网络库Netpoll的背景和优势
- 从扩展性和性能优化两个方面分享了相关实践
- 介绍了内部正在尝试落地的新的微服务形态:合并部署
三、课后总结:
- 碍于时间篇幅,本篇笔记还待后续完善