内容简介
本书介绍了gRPC,可作为指南,用于gRPC应用程序开发周期的各个阶段。本书的主要内括gRPC的基础知识;gRPC与常程间通信技术的区别;gRPC的通信模式、底层原理,以及一些重要的特,如拦截器、截止时间、错误处理、元数据、多路复用、负载均衡等。此外,本书还介绍了如何使用Go语言和Java语言构建gRPC应用程序并使其在生产环境中运行,也讲解了gRPC如何与Docker和Kuberes协作,以及其生态系统中的其他内容。本书广泛使用Go语言和Java语言编写代码示例,帮助读者掌握每个概念。
目录
译者序 ix前言 xi第 1章 gRPC入门 11.1 gRPC的定义 21.1.1 服务定义 31.1.2 gRPC服务器端 51.1.3 gRPC客户端 61.1.4 客户端–服务器端的消息流 71.2程间通信技术的演化 71.2.1 传统的RPC 71.2.2 SOAP 71.2.3 REST 81.2.4 gRPC的起源 91.2.5 选择gRPC的原因 91.2.6 gRPC与其他协议的对比:Thrift和GraphQL 111.3 现实世界中的gRPC 131.3.1 Netflix 131.3.2 etcd 141.3.3 Dropbox 141.4 小结 14第 2章 开始使用gRPC 152.1 创建服务定义 162.1.1 定义消息类型 172.1.2 定义服务类型 182.2 实现 202.2.1 开发服务 212.2.2 开发gRPC客户端 292.3 构建和运行 332.3.1 构建Go服务器端应用程序 332.3.2 构建Go客户端应用程序 332.3.3 运行Go服务器端应用程序和客户端应用程序 342.3.4 构建Java服务器端应用程序 342.3.5 构建Java客户端应用程序 342.3.6 运行Java服务器端应用程序和客户端应用程序 352.4 小结 35第3章 gRPC的通信模式 373.1 一元RPC模式 373.2 服务器端流RPC模式 403.3 客户端流RPC模式 423.4 双向流RPC模式 453.5 使用gRPC实现微服务通信 503.6 小结 52第4章 gRPC的底层原理 534.1 RPC流 534.2 使用protocol buffers编码消息 554.3 基于长度前缀的消息分帧 604.4 基于/2的gRPC 614.4.1 请求消息 624.4.2 响应消息 644.4.3 理解gRPC通信模式中的消息流 664.5 gRPC实现架构 684.6 小结 69第5章 gRPC:基础知识 715.1 拦截器 715.1.1 服务器端拦截器 725.1.2 客户端拦截器 765.2 截止时间 795.3 取消 825.4 错误处理 835.5 多路复用 865.6 元数据 895.6.1 创建和检索元数据 895.6.2 发送和接收元数据:客户端 905.6.3 发送和接收元数据:服务器端 925.6.4 命名解析器 935.7 负载均衡 945.7.1 负载均衡器代理 945.7.2 客户端负载均衡 955.7.3 压缩 975.8 小结 98第6章 的gRPC 996.1 使用TLS认证gRPC通道 996.1.1 启用单向连接 1006.1.2 启用mTLS保护的连接 1036.2 对gRPC调行认证 1076.2.1 使用basic认证 1076.2.2 使用OAuth 2.0 1126.2.3 使用JWT 1156.2.4 使用基于令牌的谷歌认证 1166.3 小结 117第7章 在生产环境中运行gRPC 1197.1 测试gRPC应用程序 1197.1.1 测试gRPC服务器端 1197.1.2 测试gRPC客户端 1217.1.3 负载测试 1227.1.4 持续集成 1237.2 部署 1237.2.1 部署到Docker上 1237.2.2 部署到Kuberes上 1257.3 可观察 1307.3.1 度量指标 1317.3.2 日志 1387.3.3 跟踪 1387.4 调试和问题排查 1427.5 小结 143第8章 gRPC的生态系统 1458.1 gRPC网关 1458.2 gRPC的/JSON转码 1528.3 gRPC服务器端反射协议 1528.4 gRPC中间件 1558.5 健康检查协议 1578.6 gRPC健康探针 1598.7 其他生态系统项目 1608.8 小结 161关于作者 162关于封面 162


