作品简介

本书全面介绍了gRPC,可作为终极指南,用于gRPC应用程序开发周期的各个阶段。本书的主要内容包括gRPC的基础知识;gRPC与常规进程间通信技术的区别;gRPC的通信模式、底层原理,以及一些非常重要的高级特性,如拦截器、截止时间、错误处理、元数据、多路复用、负载均衡等。此外,本书还介绍了如何使用Go语言和Java语言构建gRPC应用程序并使其在生产环境中运行,也讲解了gRPC如何与Docker和Kubernetes协作,以及其生态系统中的其他内容。本书广泛使用Go语言和Java语言编写代码示例,帮助读者掌握每个概念。

卡山·因德拉西里(Kasun Indrasiri)

WSO2公司集成架构总监,Apache PMC成员,拥有丰富的微服务架构经验,组建了旧金山湾区的大型微服务Meetup活动,另著有Microservices for the Enterprise。

丹尼什·库鲁普(Danesh Kuruppu)

WSO2公司高级软件工程师,曾带领团队将gRPC集成到开源云原生编程语言Ballerina中,在gRPC社区中十分活跃。

作品目录

  • 版权声明
  • O'Reilly Media, Inc. 介绍
  • 业界评论
  • 译者序
  • 前言
  • 出版说明
  • 读者对象
  • 内容结构
  • 使用示例代码
  • 排版约定
  • O'Reilly在线学习平台(O'Reilly Online Learning)
  • 联系我们
  • 致谢
  • 更多信息
  • 第 1 章 gRPC 入门
  • 1.1 gRPC的定义
  • 1.1.1 服务定义
  • 1.1.2 gRPC服务器端
  • 1.1.3 gRPC客户端
  • 1.1.4 客户端–服务器端的消息流
  • 1.2 进程间通信技术的演化
  • 1.2.1 传统的RPC
  • 1.2.2 SOAP
  • 1.2.3 REST
  • 1.2.4 gRPC的起源
  • 1.2.5 选择gRPC的原因
  • 1.2.6 gRPC与其他协议的对比:Thrift和GraphQL
  • 1.3 现实世界中的gRPC
  • 1.3.1 Netflix
  • 1.3.2 etcd
  • 1.3.3 Dropbox
  • 1.4 小结
  • 第 2 章 开始使用 gRPC
  • 2.1 创建服务定义
  • 2.1.1 定义消息类型
  • 2.1.2 定义服务类型
  • 2.2 实现
  • 2.2.1 开发服务
  • 2.2.2 开发gRPC客户端
  • 2.3 构建和运行
  • 2.3.1 构建Go服务器端应用程序
  • 2.3.2 构建Go客户端应用程序
  • 2.3.3 运行Go服务器端应用程序和客户端应用程序
  • 2.3.4 构建Java服务器端应用程序
  • 2.3.5 构建Java客户端应用程序
  • 2.3.6 运行Java服务器端应用程序和客户端应用程序
  • 2.4 小结
  • 第 3 章 gRPC 的通信模式
  • 3.1 一元RPC模式
  • 3.2 服务器端流RPC模式
  • 3.3 客户端流RPC模式
  • 3.4 双向流RPC模式
  • 3.5 使用gRPC实现微服务通信
  • 3.6 小结
  • 第 4 章 gRPC 的底层原理
  • 4.1 RPC流
  • 4.2 使用protocol buffers编码消息
  • 编码技术
  • 4.3 基于长度前缀的消息分帧
  • 4.4 基于HTTP/2的gRPC
  • 4.4.1 请求消息
  • 4.4.2 响应消息
  • 4.4.3 理解gRPC通信模式中的消息流
  • 4.5 gRPC实现架构
  • 4.6 小结
  • 第 5 章 gRPC:超越基础知识
  • 5.1 拦截器
  • 5.1.1 服务器端拦截器
  • 5.1.2 客户端拦截器
  • 5.2 截止时间
  • 5.3 取消
  • 5.4 错误处理
  • 5.5 多路复用
  • 5.6 元数据
  • 5.6.1 创建和检索元数据
  • 5.6.2 发送和接收元数据:客户端
  • 5.6.3 发送和接收元数据:服务器端
  • 5.6.4 命名解析器
  • 5.7 负载均衡
  • 5.7.1 负载均衡器代理
  • 5.7.2 客户端负载均衡
  • 5.7.3 压缩
  • 5.8 小结
  • 第 6 章 安全的 gRPC
  • 6.1 使用TLS认证gRPC通道
  • 6.1.1 启用单向安全连接
  • 6.1.2 启用mTLS保护的连接
  • 6.2 对gRPC调用进行认证
  • 6.2.1 使用basic认证
  • 6.2.2 使用OAuth 2.0
  • 6.2.3 使用JWT
  • 6.2.4 使用基于令牌的谷歌认证
  • 6.3 小结
  • 第 7 章 在生产环境中运行 gRPC
  • 7.1 测试gRPC应用程序
  • 7.1.1 测试gRPC服务器端
  • 7.1.2 测试gRPC客户端
  • 7.1.3 负载测试
  • 7.1.4 持续集成
  • 7.2 部署
  • 7.2.1 部署到Docker上
  • 7.2.2 部署到Kubernetes上
  • 7.3 可观察性
  • 7.3.1 度量指标
  • 7.3.2 日志
  • 7.3.3 跟踪
  • 7.4 调试和问题排查
  • 启用额外日志
  • 7.5 小结
  • 第 8 章 gRPC 的生态系统
  • 8.1 gRPC网关
  • 8.2 gRPC的HTTP/JSON转码
  • 8.3 gRPC服务器端反射协议
  • 8.4 gRPC中间件
  • 8.5 健康检查协议
  • 8.6 gRPC健康探针
  • 8.7 其他生态系统项目
  • 8.8 小结
  • 关于作者
  • 关于封面
  • 看完了
展开全部