.1构建Go服务器端应用程序 33
2.3.2构建Go客户端应用程序 33
2.3.3运行Go服务器端应用程序和客户端应用程序 34
2.3.4构建Java服务器端应用程序 34
2.3.5构建Java客户端应用程序 34
2.3.6运行Java服务器端应用程序和客户端应用程序 35
2.4小结 35
第3章gRPC的通信模式 37
3.1一元RPC模式 37
3.2服务器端流RPC模式 40
3.3客户端流RPC模式 42
3.4双向流RPC模式 45
3.5使用gRPC实现微服务通信 50
3.6小结 52
第4章gRPC的底层原理 53
4.1RPC流 53
4.2使用protocolbuffers编码消息 55
4.3基于长度前缀的消息分帧 60
4.4基于HTTP/2的gRPC 61
4.4.1请求消息 62
4.4.2响应消息 64
4.4.3理解gRPC通信模式中的消息流 66
4.5gRPC实现架构 68
4.6小结 69
第5章gRPC:超越基础知识 71
5.1拦截器 71
5.1.1服务器端拦截器 72
5.1.2客户端拦截器 76
5.2截止时间 79
5.3取消 82
5.4错误处理 83
5.5多路复用 86
5.6元数据 89
5.6.1创建和检索元数据 89
5.6.2发送和接收元数据:客户端 90
5.6.3发送和接收元数据:服务器端 92
5.6.4命名解析器 93
5.7负载均衡 94
5.7.1负载均衡器代理 94
5.7.2客户端负载均衡 95
5.7.3压缩 97
5.8小结 98
第6章安全的gRPC 99
6.1使用TLS认证gRPC通道 99
6.1.1启用单向安全连接 100
6.1.2启用mTLS保护的连接 103
6.2对gRPC调用进行认证 107
6.2.1使用basic认证 107
6.2.2使用OAuth2.0 112
6.2.3使用JWT 115
6.2.4使用基于令牌的谷歌认证 116
6.3小结 117
第7章在生产环境中运行gRPC 119
7.1测试gRPC应用程序 119
7.1.1测试gRPC服务器端 119
7.1.2测试gRPC客户端 121
7.1.3负载测试 122
7.1.4持续集成 123
7.2部署 123
7.2.1部署到Docker上 123
7.2.2部署到Kubernetes上 125
7.3可观察性 130
7.3.1度量指标 131
7.3.2日志 138
7.3.3跟踪 138
7.4调试和问题排查 142
7.5小结 143
第8章gRPC的生态系统 145
8.1gRPC网关 145
8.2gRPC的HTTP/JSON转码 152
8.3gRPC服务器端反射协议 152
8.4gRPC中间件 155
8.5健康检查协议 157
8.6gRPC健康探针 159
8.7其他生态系统项目 160
8.8小结 161
关于作者 162
关于封面 162