当前位置:首页 >专题 >Go gRPC 与 Protobuf 微服务工程实践

Go gRPC 与 Protobuf 微服务工程实践
Go gRPC 与 Protobuf

Go gRPC 与 Protobuf 微服务工程实践

从协议设计到流式 RPC、网关与生产治理
gRPC 把远程调用、Protocol Buffers 和 HTTP/2 组合成了一套适合微服务的工程基础,但真正上线时还要处理 proto 演进、代码生成、流式 RPC、HTTP 转换、拦截器、deadline 和可观测性。本专题以 gRPC 官方资料为基线,精选 17Golang 真实文章,串起从第一个 RPC 到生产治理的学习路径。

站内 gRPC 微服务实战路线

从安装与 Unary RPC 进入流式通信、网关和服务治理

详解Golang ProtoBuf的基本语法总结
文章

详解Golang ProtoBuf的基本语法总结

梳理 proto 文件、message、字段和 RPC 定义等 Protocol Buffers 基础语法。
Golang安装和使用protocol-buffer流程介绍
文章

Golang安装和使用protocol-buffer流程介绍

介绍 protoc 安装、proto 文件编写和 Go 代码生成流程。
Go gRPC环境安装教程示例详解
文章

Go gRPC环境安装教程示例详解

从环境安装和 protobuf 依赖开始,搭建 Go gRPC 示例。
Go gRPC教程实现Simple RPC
文章

Go gRPC教程实现Simple RPC

实现客户端发起请求、服务端返回响应的 Unary RPC。
Go gRPC服务端流式RPC教程示例
文章

Go gRPC服务端流式RPC教程示例

演示客户端请求后由服务端持续返回消息流的实现方式。
Go gRPC服务客户端流式RPC教程
文章

Go gRPC服务客户端流式RPC教程

演示客户端连续上传消息,服务端在流结束后返回结果。
Go gRPC服务双向流式RPC教程
文章

Go gRPC服务双向流式RPC教程

演示客户端与服务端同时读写消息序列的双向流。
GoGrpcGateway兼容HTTP协议文档自动生成网关
文章

GoGrpcGateway兼容HTTP协议文档自动生成网关

介绍 grpc-gateway 将 gRPC 服务映射为 HTTP/JSON API 并生成文档。
Go gRPC服务进阶middleware使用教程
文章

Go gRPC服务进阶middleware使用教程

覆盖 gRPC middleware 的认证、日志、验证、重试和监控等横切能力。
Go gRPC进阶教程服务超时设置
文章

Go gRPC进阶教程服务超时设置

介绍 gRPC 服务超时设置以及请求链路中的截止时间控制。

gRPC 与 Protobuf 常见问题

围绕协议演进、流式调用、超时和 HTTP 兼容的实用答案

gRPC 和 REST API 应该如何选择?

gRPC 适合内部服务间的强类型、高性能调用和流式通信;REST/JSON 更适合浏览器、开放平台和跨团队低门槛接入。常见做法是内部以 gRPC 为主,再通过 grpc-gateway 或 BFF 暴露 HTTP API。

修改 proto 字段时怎样保持兼容?

不要复用已删除字段的编号,新增字段使用新的 field number 并考虑默认值;对外契约要评估旧客户端、未知字段、枚举扩展和滚动发布顺序,必要时用 Buf breaking checks 做自动化检查。

四种 gRPC RPC 模式分别适合什么场景?

Unary 适合一次请求一次响应;服务端流适合持续推送;客户端流适合批量上传或聚合;双向流适合实时会话。选择时要同时考虑背压、取消、消息顺序、重连和流结束语义。

gRPC 服务为什么必须设置 deadline?

没有 deadline 的 RPC 可能在网络、依赖或连接异常时无限等待,持续占用 goroutine、连接和业务资源。客户端应设置合理 deadline,服务端检查 context,并让取消信号沿调用链传播。

微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码