跳转至

RPC 调用原理

一、什么是 RPC

远程过程调用,像调用本地方法一样调用远程服务。

二、流程

客户端 stub → 序列化 → 网络传输 → 服务端 stub → 反序列化 → 调用实现 → 返回

三、核心组件

1. 序列化

把对象转成字节。 - JSON。 - Protobuf。 - Hessian。

2. 网络传输

  • HTTP/1.1。
  • HTTP/2。
  • TCP 长连接。

3. 服务发现

  • Nacos。
  • ZooKeeper。

4. 动态代理

客户端用代理,屏蔽网络细节。

四、框架

  • Dubbo。
  • gRPC。
  • Spring Cloud OpenFeign。

五、为什么用 RPC

  • 解耦。
  • 服务化。
  • 负载均衡。

六、和 HTTP API 区别

RPC HTTP API
协议 TCP/HTTP2 HTTP1.1
序列化 Protobuf/JSON JSON
性能 一般
服务治理 完整 靠网关

一句话

RPC = 代理 + 序列化 + 网络 + 服务发现。