RPC框架笔记

39 阅读1分钟

基本概念

RPC是远程过程调用(Remote Procedure Call)。 RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明调用机制,让使用者不必显式的区分本地调用和远程调用。

需要解决的问题:

函数映射 数据转换成字节流 网络传输

概念模型

User、User-Stub、RPC-Runtime、Server-Stub、Server

优点

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

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

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

带来的问题

a.服务宕机,对方应该如何处理?

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

c.请求量突增导致服务无法及时处理,有哪些应对措施?

一次RPC完整过程

IDL文件👉生成代码👉编解码(兼容/通用/性能)👉通信协议👉网络传输(TCP/UDP)

分层设计

核心层:编解码层、协议层、网络通信层

关键指标

稳定性

保障策略:熔断、限流、超时控制

请求成功率

长尾请求

注册中间件

易用性

合理的默认参数选项、丰富的文档

生成代码工具、脚手架工具

扩展性

观测性

内置观测性服务

Log, Metric, Tracing

高性能

目标:高吞吐、低延迟

手段:连接池、多路复用、高性能编解码协议、高性能网络库