介绍

Grpc 是 Google 开源的一个高性能、通用的远程过程调用(RPC)框架,一般用于各种微服务之间的通信,相比于 REST API(GET、POST 等)有更快的响应速度

核心思想:
👉 就像调用本地函数一样去调用远程服务器上的函数。

特点

  • 基于 HTTP/2 协议

    • 支持多路复用(一个 TCP 连接上并行多个请求)

    • 支持流式传输(双向流、单向流)

    • 头部压缩,传输更快

  • 使用 Protobuf(Protocol Buffers)作为接口描述语言(IDL)和序列化协议

    • 数据传输比 JSON/XML 更小、更快

    • 跨语言:C/C++、Go、Java、Python、Node.js、C#、Ruby、PHP 都能用

  • 支持多种通信模式

    • Unary RPC:一问一答

    • Server streaming RPC:客户端发一次请求,服务器连续推送数据流

    • Client streaming RPC:客户端连续发流,服务器最后返回一次

    • Bidirectional streaming RPC:客户端和服务器都可以不断发消息(类似 WebSocket)

  • 强类型 + 自动生成代码

    • 你在 .proto 文件里定义好接口和数据结构

    • gRPC 工具会自动生成各个语言的客户端和服务端代码

    • 避免了手动写 API 协议