主题
RPC 与 gRPC 简介
1. 什么是 RPC
RPC(Remote Procedure Call,远程过程调用)是一种通过网络调用远程服务器函数的机制,就像调用本地函数一样简洁。
特点:
- 屏蔽通信细节
- 通常基于 TCP 或 HTTP
- 使用序列化机制(如 JSON、Protobuf)
2. 什么是 gRPC
gRPC 是 Google 开源的高性能 RPC 框架,基于 HTTP/2 和 Protocol Buffers(protobuf)序列化协议。
主要特性:
- 使用
.proto
定义服务和消息结构 - 跨语言支持广泛(Go、Java、Python 等)
- 支持流式传输(Client/Server/Bidirectional)
- 内置认证、超时、负载均衡等功能
3. gRPC 工作流程简述
- 定义
.proto
文件,声明服务和消息类型 - 使用 protoc 编译生成 Go 代码
- 实现服务端逻辑并启动 gRPC 服务器
- 客户端使用生成的代码进行调用
4. RPC 与 gRPC 对比
特性 | RPC(通用) | gRPC |
---|---|---|
协议 | 多样(HTTP、TCP) | HTTP/2 |
序列化格式 | JSON、XML 等 | Protobuf(高效、二进制) |
性能 | 一般 | 高性能,支持多路复用 |
工具链支持 | 分散 | 完善,官方工具支持生成代码 |
双向流 | 支持较少 | 原生支持 |
gRPC 是构建高效微服务的主流选择,适合需要高性能、强类型接口的分布式系统。