跳转至

RPC 框架

RPC 框架封装了 RPC 的细节,使得开发者可以和像调用一个本地函数一样调用 RPC 方法,提高开发效率。总的来说,一个基本的 RPC 框架通常需要提供以下功能:

  • 提供 RPC Stub
  • 管理进程之间的网络连接
  • 将请求根据协议编码发送出去,并接收响应

一些高级的功能还包括:

  • 负载均衡
  • 服务发现
  • 名字服务
  • 故障屏蔽
  • 过载保护
  • 安全鉴权
  • 服务质量控制(QoS)

简单的 RPC 框架可以很简单,只需要套用现有的序列化协议,再包装一下操作系统提供的网络接口,就能基本实现一个极简的 RPC 框架。但是,出于性能、可靠性以及可扩展性的考虑,RPC 框架往往是很复杂的,涉及到无锁编程、异步编程、Cache 优化、多核优化、自定义内存管理、实现可扩展的插件接口等等高级的编程技术。

许多公司都推出了自己的 RPC 框架,例如百度的 brpcGoogle 的 gRPC。而一些公司也会自行开发内部的 RPC 框架,与公司内部服务与工具更紧密地结合起来,更加简化开发者开发流程。例如,可以对 RPC 的服务发现以及连接初始化等进行改造,使得开发者可以不用手动填写对方服务的 RPC 地址,只需要导入链接需要调用服务的 RPC 客户端库,就能直接调用,更接近直接调库的体验。


最后更新: 2021-10-18 17:03:55
本页作者: Howard Lau