RPC Remote Procedure Call 远端过程调用
本质就是从本地机器去执行服务器上的一个函数。所以说 RPC 指的是一类日常的操作,是个很宽泛的概念。
HTTP 请求本身也可以看做是 RPC 的一种具体形式。
谷歌的 gRPC 是一个 RPC 框架,底层通信协议是基于 HTTP2.0 的。
RPC 也可以不走 HTTP 协议,而直接在 TCP 协议上去做定制,去获得更大的效率和灵活性。
HTTP 请求往往围绕资源,而 RPC 的请求往往围绕一个函数调用动作。
JSON-RPC:
--> {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1}
<-- {"jsonrpc": "2.0", "result": 19, "id": 1}