CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
gRPC 入门/课时/gRPC 是什么
RawBlame
课时目录12 节

gRPC 入门

  1. 01gRPC 是什么
  2. 02Protocol Buffers
  3. 03代码生成
  4. 04Java 服务端
  5. 05Java 客户端
  6. 06流式 RPC
  7. 07Spring gRPC 集成
  8. 08状态与错误
  9. 09gRPC-Gateway
  10. 10gRPC vs REST
  11. 11TLS 与安全
  12. 12综合练习

gRPC 是什么

RPC vs REST;HTTP/2、二进制协议优势。

30 分钟

gRPC 是什么

gRPC 是 Google 开源的高性能 RPC 框架:基于 HTTP/2 与 Protocol Buffers 二进制序列化,服务间调用延迟低、契约强类型。它与 REST 互补——不是 CodeRoadMap 对外主 API 的默认选择。

学习目标

  • 区分 RPC 与 REST 的通信模型
  • 理解 HTTP/2 多路复用、二进制帧对微服务的意义
  • 明确本站 生产 /tracks 仍走 REST;gRPC 用于 lab 微服务实验

核心内容

RPC vs REST

REST(本站主 API)gRPC(lab 微服务)
契约OpenAPI / JSON 约定.proto 强类型
传输HTTP/1.1 或 HTTP/2 + JSONHTTP/2 + Protobuf
浏览器直接 fetch 友好需 gRPC-Web / Gateway
适用公开课程 API、SEO内网服务间、高吞吐

本站 platform 对外:

GET /tracks              → JSON 课程列表
GET /tracks/{slug}       → track 元数据

这是 spring-boot-essentials 的 @RestController 模式,与 graphql-essentials 中「主 API 非 GraphQL」的立场一致——gRPC 同理,不替换 /tracks。

gRPC 调用示意

Client (ManagedChannel + Stub)
    │ HTTP/2 + Protobuf
    ▼
Server (BindableService)
    └── TrackService.GetTrack(GetTrackRequest) → GetTrackResponse

四种模式:Unary、Server streaming、Client streaming、Bidirectional streaming(见 grpc-streaming)。

何时值得学 gRPC

  • 微服务间高频、低延迟调用(配合 spring-cloud-essentials 服务发现)
  • 多语言团队共享 .proto 契约
  • 流式推送(进度、日志 tail)

CodeRoadMap 课程站点读多写少、Next.js 直接调 REST——REST 足够;本 track 在 lab-grpc profile 动手。

练习

  • 用 curl 访问本站 /tracks,记录 Content-Type 与响应格式
  • 画对比图:浏览器 → REST /tracks vs 微服务 A → gRPC → 微服务 B
  • 阅读 grpc-vs-rest 预习选型
  • 小结

    gRPC = HTTP/2 + Protobuf 的强契约 RPC;本站生产主路径仍是 REST /tracks。 下一课 .proto 与 Protocol Buffers 语法。

    加载本节练习…
    下一课 →Protocol Buffers