分布式 RPC
本文将介绍 RPC 的概念及其基本问题。
一、什么是 RPC?
RPC,Remote Procedure Call,远程过程调用。
RPC 的目的是让程序能够像调用本地方法一样调用 “远程方法”,从而简化不同服务之间的协作。
二、RPC 的基本问题
1. 数据如何表示?
在 RPC 的过程中,需要传递很多数据,包括调用方法、请求参数、返回值等等。
RPC 中存在调用者和被调用者,它们的环境、技术栈可能完全不同,因此数据在它们中的表示也可能完全不同。
因此,应该事先约定一种中立的、与二者无关的数据格式。
2. 数据如何传递?
在进行 RPC 时,为了保证数据能够安全、准确地传输,需要考虑的有:
- 异常处理
- 超时处理
- 安全、认证
3. 被调方法如何确定?
在进行 RPC 时,需要确定被调用方法。
通常来说,可以设置一个 “KV-Map”(K 表示标识符,而 V 表示方法),以标识符来定位被调方法。