gRPC与云原生应用开发:以Go和Java为例
Kasun Indrasiri, Danesh Kuruppu
张卫滨 译
出版时间:2021年01月
页数:162
gRPC是由谷歌公司开源的高性能远程过程调用框架,它能适应各种环境,尤其适合构建云原生应用程序和微服务。利用gRPC,可以高效地跨数据中心建立服务间通信,灵活地支持负载均衡、健康检查、服务发现、认证等,将移动设备、应用程序和浏览器连接到后端服务,打通分布式计算的“最后一公里”。
随着gRPC的采用率呈指数级增长,开发人员需要一份介绍该技术的综合资源,本书旨在填补这一空白。作者分别用Go语言和Java语言介绍了gRPC的方方面面。无论是只想初探gRPC,还是想为自己的项目寻找新方案,你都能从本书中有所收获。
● 理解gRPC的底层原理和通信模式
● 对比gRPC和其他进程间通信技术
● 掌握如何创建服务定义
● 学会构建和运行gRPC应用程序
● 熟悉拦截器、多路复用、负载均衡等高级特性
● 理解gRPC如何与Docker和Kubernetes协作
  1. 译者序 
  2. 前言 
  3. 第1章 gRPC入门 
  4. 1.1 gRPC的定义 
  5. 1.1.1 服务定义 
  6. 1.1.2 gRPC服务器端 
  7. 1.1.3 gRPC客户端 
  8. 1.1.4 客户端–服务器端的消息流 
  9. 1.2 进程间通信技术的演化 
  10. 1.2.1 传统的RPC 
  11. 1.2.2 SOAP 
  12. 1.2.3 REST 
  13. 1.2.4 gRPC的起源 
  14. 1.2.5 选择gRPC的原因 
  15. 1.2.6 gRPC与其他协议的对比:Thrift和GraphQL 
  16. 1.3 现实世界中的gRPC 
  17. 1.3.1 Netflix 
  18. 1.3.2 etcd 
  19. 1.3.3 Dropbox 
  20. 1.4 小结 
  21. 第2章 开始使用gRPC 
  22. 2.1 创建服务定义 
  23. 2.1.1 定义消息类型 
  24. 2.1.2 定义服务类型 
  25. 2.2 实现 
  26. 2.2.1 开发服务 
  27. 2.2.2 开发gRPC客户端 
  28. 2.3 构建和运行 
  29. 2.3.1 构建Go服务器端应用程序 
  30. 2.3.2 构建Go客户端应用程序 
  31. 2.3.3 运行Go服务器端应用程序和客户端应用程序 
  32. 2.3.4 构建Java服务器端应用程序 
  33. 2.3.5 构建Java客户端应用程序 
  34. 2.3.6 运行Java服务器端应用程序和客户端应用程序 
  35. 2.4 小结 
  36. 第3章 gRPC的通信模式 
  37. 3.1 一元RPC模式 
  38. 3.2 服务器端流RPC模式 
  39. 3.3 客户端流RPC模式 
  40. 3.4 双向流RPC模式 
  41. 3.5 使用gRPC实现微服务通信 
  42. 3.6 小结 
  43. 第4章 gRPC的底层原理 
  44. 4.1 RPC流 
  45. 4.2 使用protocol buffers编码消息 
  46. 4.3 基于长度前缀的消息分帧 
  47. 4.4 基于HTTP/2的gRPC 
  48. 4.4.1 请求消息 
  49. 4.4.2 响应消息 
  50. 4.4.3 理解gRPC通信模式中的消息流 
  51. 4.5 gRPC实现架构
  52. 4.6 小结 
  53. 第5章 gRPC:超越基础知识 
  54. 5.1 拦截器 
  55. 5.1.1 服务器端拦截器 
  56. 5.1.2 客户端拦截器 
  57. 5.2 截止时间 
  58. 5.3 取消 
  59. 5.4 错误处理 
  60. 5.5 多路复用 
  61. 5.6 元数据 
  62. 5.6.1 创建和检索元数据 
  63. 5.6.2 发送和接收元数据:客户端 
  64. 5.6.3 发送和接收元数据:服务器端 
  65. 5.6.4 命名解析器 
  66. 5.7 负载均衡 
  67. 5.7.1 负载均衡器代理 
  68. 5.7.2 客户端负载均衡 
  69. 5.7.3 压缩 
  70. 5.8 小结 
  71. 第6章 安全的gRPC 
  72. 6.1 使用TLS认证gRPC通道 
  73. 6.1.1 启用单向安全连接 
  74. 6.1.2 启用mTLS保护的连接 
  75. 6.2 对gRPC调用进行认证 
  76. 6.2.1 使用basic认证 
  77. 6.2.2 使用OAuth 2.0 
  78. 6.2.3 使用JWT 
  79. 6.2.4 使用基于令牌的谷歌认证 
  80. 6.3 小结 
  81. 第7章 在生产环境中运行gRPC 
  82. 7.1 测试gRPC应用程序 
  83. 7.1.1 测试gRPC服务器端 
  84. 7.1.2 测试gRPC客户端 
  85. 7.1.3 负载测试 
  86. 7.1.4 持续集成 
  87. 7.2 部署 
  88. 7.2.1 部署到Docker上 
  89. 7.2.2 部署到Kubernetes上 
  90. 7.3 可观察性 
  91. 7.3.1 度量指标 
  92. 7.3.2 日志 
  93. 7.3.3 跟踪 
  94. 7.4 调试和问题排查 
  95. 7.5 小结 
  96. 第8章 gRPC的生态系统 
  97. 8.1 gRPC网关 
  98. 8.2 gRPC的HTTP/JSON转码 
  99. 8.3 gRPC服务器端反射协议 
  100. 8.4 gRPC中间件 
  101. 8.5 健康检查协议 
  102. 8.6 gRPC健康探针 
  103. 8.7 其他生态系统项目 
  104. 8.8 小结 
书名:gRPC与云原生应用开发:以Go和Java为例
译者:张卫滨 译
国内出版社:人民邮电出版社
出版时间:2021年01月
页数:162
书号:978-7-115-55498-7
原版书书名:gRPC: Up and Running
原版书出版商:O'Reilly Media
Kasun Indrasiri
 
卡山·因德拉西里(Kasun Indrasiri), WSO2公司集成架构总监,Apache PMC成员,拥有丰富的微服务架构经验,组建了旧金山湾区的大型微服务Meetup活动,另著有Microservices for the Enterprise。
 
 
Danesh Kuruppu
 
丹尼什·库鲁普(Danesh Kuruppu),WSO2公司高级软件工程师,曾带领团队将gRPC集成到开源云原生编程语言Ballerina中,在gRPC社区中十分活跃。