加载中...
gRPC 是 Google 开源的高性能远程过程调用框架,基于 HTTP/2 和 Protocol Buffers,支持多语言、双向流,是微服务间通信和移动后端 API 的重要选择。

| 类型 | 远程过程调用框架 |
| 开源时间 | 2015 年(Google 内部使用始于 2001 年 Stubby) |
| 序列化格式 | Protocol Buffers(protobuf) |
gRPC 把三件事组合在一起:HTTP/2 提供多路复用和头部压缩;Protocol Buffers(protobuf) 作为序列化格式,比 JSON 小 3-10 倍、解析快 5-100 倍;IDL(接口定义语言)定义服务和消息格式,工具链从 .proto 文件自动生成十几种语言的客户端和服务端代码。
gRPC 支持四种通信模式:
gRPC 在微服务内部通信上优势明显:服务间大量小请求,protobuf 的低开销积累起来节省可观;自动生成代码避免了手写 HTTP 客户端的重复劳动;强类型接口让跨团队协作更安全。Google、Netflix、Dropbox、Cisco 都大规模使用。
但 gRPC 在浏览器端有局限:浏览器的 fetch API 无法直接控制 HTTP/2 帧,因此前端必须走 gRPC-Web(需要代理转换)或改用 ConnectRPC(同时兼容 gRPC 和 HTTP/JSON)。调试比 REST 麻烦,Protobuf 编码是二进制,不能直接 curl 查看。

| 类型 | 远程过程调用框架 |
| 开源时间 | 2015 年(Google 内部使用始于 2001 年 Stubby) |
| 序列化格式 | Protocol Buffers(protobuf) |
登录 后参与讨论
暂无讨论,来发表第一条评论吧