[ RPC 框架分层设计 | 青训营课程笔记 ]

88 阅读2分钟

[ RPC 框架分层设计 | 青训营课程笔记 ]

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

01.基本概念

1.1 本地函数调用

  1. 将a和 b的值压栈
  2. 通过函数指针找到 calculate 函数,进入函数取出栈中的值2和3,将其赋予x和y
  3. 计算x*y,并将结果存在Z
  4. 将工的值压栈,然后从calculate 返回
  5. 从栈中取出z返回值,并赋值给result image.png

1.2 远程函数调用(RPC - Remote Procedure Calls)

RPC需要解决的问题

  1. 函数映射
  2. 数据转换成字节流
  3. 网络传输

image.png

1.3 RPC概念模型

image.png

1.4 一次RPC的完整过程

image.png

1.5 RPC的好处

  1. 单一职责,有利于分工协作和运维开发
  2. 可扩展性强,资源使用率更优
  3. 故障隔离,服务的整体可靠性更高

image.png

1.6 RPC带来的问题

1.服务宕机,对方应该如何处理? 2.在调用过程中发生网络异常,如何保证消息的可达性? 3.请求量突增导致服务无法及时处理,有哪些应对措施?

image.png

1.7 小结

  1. 本地函数调用和RPC调用的区别:函数映射、数据转成字节流、网络传输
  2. RPC的概念模型:User、User-Stub、RPC-Runtime、Server-Stub、Server
  3. 一次 PRC的完整过程,并讲解了RPC的基本概念定义
  4. RPC带来好处的同时也带来了不少新的问题,将由RPC框架来解决

02.分层设计

编解码层

协议层

网络通信层

image.png

03.关键指标

稳定性

易用性

扩展性

观测性

高性能

image.png

04.企业实践

整体架构

自研网络库

扩展性设计

性能优化

合并部署

image.png