【day13】RPC原理与实现 | 青训营笔记

53 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天

资料

要点:

  • RPC 相关的基本概念
  • RPC 框架的分层设计
  • 衡量 RPC 框架的一些核心指标
  • 字节内部 RPC 框架 Kitex 实践分享
课程1-RPC 框架分层设计

RPC的好处

a.单一职责,有利于分工协作和运维开发

b.可扩展性强,资源使用率更优

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

RPC带来的问题

a.服务宕机,如何处理?

b.在调用过程中发生网络异常,如何保证消息的可达性?

c.请求流量突增导致服务无法及时处理,如何应对?

数据格式

a.语言特定的格式

b.文本格式

c.二进制编码

TLV编码:Tag:标签,类型;Length:长度;Value:值,也可以是TLV结构

小结:

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

b.二进制编解码的实现原理和选型特点

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

d.网络库的基本架构,以及选型时要考察的核心指标

课程2-RPC 关键指标分析与企业实践

关键指标:

1.稳定性

1)熔断:保护调用方

2)限流:保护被调用放

3)超时控制:避免浪费资源

2.易用性

3.扩展性

4.观测性

5.高性能

小结:

a.框架通过中间件来注入各种服务治理策略,保障服务的稳定性

b.通过提供合理的默认配置和方便的命令行工具可以提升框架的易用性

c.框架应当提供丰富的扩展点,例如核心的传输层和协议层

d.观测性除了传统的Log、Metric和Tracing之外,内置状态暴露服务也很有必要

e.性能可以从多个层面去优化,例如选择高性能的编解码协议和网络库