请解释 RPC 的概念,列举几种主流 RPC 框架,并说明实现一个 RPC 框架的核心原理。
考察说明
考查对远程过程调用概念、生态和底层实现机制的理解深度。
回答思路
- 【回答框架 1】RPC 即远程过程调用,允许程序像调用本地方法一样调用远程服务,涵盖传输协议、序列化、服务发现与代理等环节。
- 【回答框架 2】常见 RPC 框架包括 Dubbo、gRPC、Thrift、Spring Cloud OpenFeign 等,各自侧重点不同,如 Dubbo 强调服务治理,gRPC 基于 HTTP/2 与 Protobuf,Thrift 提供跨语言生成。
- 【回答框架 3】核心原理包括动态代理生成客户端存根、网络传输、序列化与反序列化、服务寻址与负载均衡、超时与异常处理。调用流程为客户端发起本地调用,代理将请求封装为消息,经序列化和网络传输至服务端,服务端反序列化后执行真实方法并返回结果。
- 【回答框架 4】实现时需关注参数与返回值序列化协议、连接管理、线程模型、错误处理、幂等性设计,以及注册中心协调服务上下线。
- 【关键点 1】RPC 的透明性由客户端代理和网络通信层共同实现。
- 【关键点 2】序列化协议与传输协议决定性能与兼容性。
- 【关键点 3】服务发现与负载均衡是分布式场景的必备组件。
- 【关键点 4】异常传播与超时处理需显式设计。
- 【关键点 5】幂等性需依据业务标识与状态记录保障,而非仅依赖 RPC 框架。
- 【易错点 1】混淆 RPC 与 HTTP 调用,缺少对协议栈和代理机制的解释。
- 【易错点 2】忽视服务熔断、限流等治理能力。
- 【易错点 3】错误认为 RPC 本身保证幂等,实际需业务层配合。