分布式 RPC

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

一、什么是 RPC?

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

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

二、RPC 的基本问题

1. 数据如何表示?

在 RPC 的过程中,需要传递很多数据,包括调用方法、请求参数、返回值等等。

RPC 中存在调用者和被调用者,它们的环境、技术栈可能完全不同,因此数据在它们中的表示也可能完全不同。

因此,应该事先约定一种中立的、与二者无关的数据格式。

2. 数据如何传递?

在进行 RPC 时,为了保证数据能够安全、准确地传输,需要考虑的有:

  • 异常处理
  • 超时处理
  • 安全、认证

3. 被调方法如何确定?

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

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

参考