RPC
#markmap
RPC(Remote Procedure Call)远程过程调用,让微服务间像调用本地方法一样通信。
核心组件
RPC框架 详细介绍了 REST vs RPC 的区别、gRPC 四种调用模式、OpenFeign vs Dubbo 对比、幂等性设计和序列化选型。
DubboSPI 是 Dubbo 的核心扩展机制,通过 @SPI 和 @Adaptive 注解实现动态扩展,支持协议切换、序列化方式选择和负载均衡策略切换。
ZooKeeper 是 Apache 开源的分布式协调服务,提供配置维护、分布式同步、分布式锁等功能。在 Dubbo 中常作为注册中心使用。
技术选型
| 维度 | Dubbo | gRPC | OpenFeign |
|---|---|---|---|
| 协议 | TCP 自定义协议 | HTTP/2 + Protobuf | HTTP/REST |
| 序列化 | Hessian/Kryo | Protobuf | JSON |
| 性能 | 高 | 高 | 中 |
| 服务治理 | 内置 | 需自行实现 | 依赖 Spring Cloud |
| 适用场景 | Java 生态高吞吐 | 跨语言高性能 | 中小型微服务 |
选型建议
- Java 生态、高性能 → Dubbo
- 跨语言、高性能 → gRPC
- Spring Cloud 体系 → OpenFeign
- 外部 API → REST