分布式 RPC

本文将介绍 RPC 的概念及其基本问题。

一、什么是 RPC?

RPC,Remote Procedure Call,远程过程调用。

RPC 的目的是让计算机能够像调用本地方法一样调用 “远程方法”,以简化不同服务之间的协作。

二、RPC 的基本问题

1. 数据如何表示?

在 RPC 的过程中,需要被传递的数据有:参数、返回值。两个服务的环境、技术栈可能完全不同,显然,数据在两个服务中的表示也可能完全不同。因此,应该事先约定好一种中立的数据格式,两个服务应该在传输前和接受后对数据进行转换。

2. 数据如何传递?

在 RPC 中,关于数据的传递需要考虑的有:

  • 传输协议选择
  • 异常处理
  • 安全校验

3. 被调方法如何确定?

RPC 时,需要确定被调用方法。

通常来说,可以设置一个 “KV-Map”(K 表示标识符,而 V 表示方法),以标识符来定位被调方法。

参考