教程 go tutorial

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 工作流程简述

  1. 定义 .proto 文件,声明服务和消息类型
  2. 使用 protoc 编译生成 Go 代码
  3. 实现服务端逻辑并启动 gRPC 服务器
  4. 客户端使用生成的代码进行调用

4. RPC 与 gRPC 对比

特性 RPC(通用) gRPC
协议 多样(HTTP、TCP) HTTP/2
序列化格式 JSON、XML 等 Protobuf(高效、二进制)
性能 一般 高性能,支持多路复用
工具链支持 分散 完善,官方工具支持生成代码
双向流 支持较少 原生支持

gRPC 是构建高效微服务的主流选择,适合需要高性能、强类型接口的分布式系统。