RPC 调用原理¶
一、什么是 RPC¶
远程过程调用,像调用本地方法一样调用远程服务。
二、流程¶
三、核心组件¶
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 = 代理 + 序列化 + 网络 + 服务发现。