gRPC · Protobuf · HTTP/2 · 2026

gRPC / Protobuf 实战

Google 开源的高性能 RPC 框架,基于 HTTP/2 多路复用传输,用 Protobuf 二进制序列化替代 JSON;配合 .proto IDL 做跨语言强类型契约,一份接口描述生成 Go/Python/Java/TypeScript 全家桶代码,是今天微服务与流式通信的事实标准。

10 章 · 深度讲透 从 Protobuf 语法到生产治理 Unary / 服务端流 / 客户端流 / 双向流

为什么选 gRPC

当 REST + JSON 遇到微服务规模、低延迟场景与多语言生态的三重挑战

gRPC 是 Google 于 2015 年开源的高性能 RPC 框架,现已成为微服务间通信的事实标准。它基于 HTTP/2 协议传输,使用 Protobuf(Protocol Buffers)作为序列化格式,提供强类型接口契约与多语言代码生成;相比 REST/JSON,它天然解决了文档漂移、手写 DTO、多语言互通与流式通信四个老大难问题。

性能优势非常直观:在 benchmarks.protobuf.dev 的单线程基准上,Protobuf 吞吐约 2.4 GB/s,是标准库 JSON(~280 MB/s)的 约 10 倍,也明显快过 fast-json 家族(~620 MB/s);二进制编码体积比 JSON 小 3–10 倍,HTTP/2 的多路复用与头部压缩进一步削减了握手与帧开销。对延迟敏感的内部服务间调用、大规模流式数据传输、以及需要同时支持 Go/Python/Java/TS 的多语言架构,gRPC 几乎都是默认选项。

课程大纲

10 章 · 从 RPC 原理到 mTLS、gRPC-Web 与服务治理

Chapter 01 gRPC 简介:RPC 原理与核心优势 RPC 概念与 REST 对比 · HTTP/2 多路复用基础 · 适用场景与非适用场景 · 安装 protoc · 名词解释:IDL/存根 Stub/通道 Channel
入门HTTP/2
Chapter 02 Protobuf 语法深度解析 message/enum/repeated/oneof/map · 字段编号规则与兼容性 · Well-Known Types(Timestamp/Duration/Any) · proto3 最佳实践
ProtobufIDL
Chapter 03 服务定义与代码生成 service 与 rpc 四种模式 · protoc 命令行 · Go/Python 插件 · buf 工具链现代化 · 用户服务 proto 从零搭建实战
protocbuf
Chapter 04 Unary RPC 实战 Go 服务端实现 · 客户端调用 · Python 跨语言对接 · 错误处理 status/codes 规范 · 商品 CRUD 服务完整样例
UnaryGo
Chapter 05 服务端流与客户端流 stream.Send() · for/range 接收 · CloseAndRecv 语义 · 进度上报模式 · 大文件分块上传/下载实战
流式单向流
Chapter 06 双向流 RPC Send/Recv 并发结构 · goroutine 架构 · io.EOF 完成信号 · 实时聊天室 · 远程命令执行两个端到端实战
Bidi实时
Chapter 07 拦截器与中间件 Unary/Stream Interceptor · 链式组合 · 日志拦截器 · JWT 认证拦截器 · go-grpc-middleware 生态选型
Interceptor中间件
Chapter 08 认证与安全 TLS/mTLS 双向认证配置 · Metadata 传递 token · PerRPCCredentials · 与 Istio 零信任集成 · JWT + TLS 完整实战
mTLS安全
Chapter 09 gRPC-Web 与浏览器 HTTP/2 在浏览器端的限制 · Envoy 代理配置 · grpc-web TypeScript 客户端 · ConnectRPC 现代方案 · React 前端集成
gRPC-WebConnectRPC
Chapter 10 生产化与服务治理 健康检查 Health Check · grpcurl 调试 · 服务发现与负载均衡 · Prometheus 监控埋点 · Protobuf 向后兼容演进规则
生产治理