gRPC与云原生应用开发:以Go和Java为例
- ISBN:9787115554987
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:162
- 出版时间:2021-01-01
- 条形码:9787115554987 ; 978-7-115-55498-7
本书特色
适读人群 :本书适合构建分布式应用程序和微服务的开发人员及架构师阅读。1.本书全面介绍了gRPC,可作为终极指南,用于gRPC应用程序开发周期的各个阶段; 2.高效构建微服务和分布式系统; 3.GitHub项目总星数近5万; 4.谷歌加持,已被微软、思科、Netflix等公司采用; 5.书中所有示例都提供了Java语言和Go语言的两种实现; 6.提供随书代码和补充材料。 ·gRPC是由谷歌公司开源的高性能远程过程调用框架,它能适应各种环境,尤其适合构建云原生应用程序和微服务。利用gRPC,可以高效地跨数据中心建立服务间通信,灵活地支持负载均衡、健康检查、服务发现、认证等,将移动设备、应用程序和浏览器连接到后端服务,打通分布式计算的“*后一公里”。 ·随着gRPC的采用率呈指数级增长,开发人员需要一份介绍该技术的综合资源。本书作者分别用Go语言和Java语言介绍了gRPC的方方面面。无论是只想初探gRPC,还是想为自己的项目寻找新方案,你都能从本书中有所收获。 - 理解gRPC的底层原理和通信模式 - 对比gRPC和其他进程间通信技术 - 掌握如何创建服务定义 - 学会构建和运行gRPC应用程序 - 熟悉拦截器、多路复用、负载均衡等高级特性 - 理解gRPC如何与Docker和Kubernetes协作
内容简介
本书全面介绍了gRPC,可作为优选指南,用于gRPC应用程序开发周期的各个阶段。本书的主要内容包括gRPC的基础知识;gRPC与常规进程间通信技术的区别;gRPC的通信模式、底层原理,以及一些很好重要的不错特性,如、截止时间、错误处理、元数据、多路复用、负载均衡等。此外,本书还介绍了如何使用Go语言和Java语言构建gRPC应用程序并使其在生产环境中运行,也讲解了gRPC如何与Docker和Kubernetes协作,以及其生态系统中的其他内容。本书广泛使用Go语言和Java语言编写代码示例,帮助读者掌握每个概念。
目录
前言 xi
第 1章 gRPC入门 1
1.1 gRPC的定义 2
1.1.1 服务定义 3
1.1.2 gRPC服务器端 5
1.1.3 gRPC客户端 6
1.1.4 客户端–服务器端的消息流 7
1.2 进程间通信技术的演化 7
1.2.1 传统的RPC 7
1.2.2 SOAP 7
1.2.3 REST 8
1.2.4 gRPC的起源 9
1.2.5 选择gRPC的原因 9
1.2.6 gRPC与其他协议的对比:Thrift和GraphQL 11
1.3 现实世界中的gRPC 13
1.3.1 Netflix 13
1.3.2 etcd 14
1.3.3 Dropbox 14
1.4 小结 14
第 2章 开始使用gRPC 15
2.1 创建服务定义 16
2.1.1 定义消息类型 17
2.1.2 定义服务类型 18
2.2 实现 20
2.2.1 开发服务 21
2.2.2 开发gRPC客户端 29
2.3 构建和运行 33
2.3.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.1 RPC流 53
4.2 使用protocol buffers编码消息 55
4.3 基于长度前缀的消息分帧 60
4.4 基于HTTP 2的gRPC 61
4.4.1 请求消息 62
4.4.2 响应消息 64
4.4.3 理解gRPC通信模式中的消息流 66
4.5 gRPC实现架构 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 使用OAuth 2.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.1 gRPC网关 145
8.2 gRPC的HTTP JSON转码 152
8.3 gRPC服务器端反射协议 152
8.4 gRPC中间件 155
8.5 健康检查协议 157
8.6 gRPC健康探针 159
8.7 其他生态系统项目 160
8.8 小结 161
关于作者 162
关于封面 162
作者简介
卡山.因德拉西里(Kasun Indrasiri)WSO2公司集成架构总监,Apache PMC成员,拥有丰富的微服务架构经验,组建了旧金山湾区的大型微服务Meetup活动,另著有Microservices for the Enterprise。丹尼什.库鲁普(Danesh Kuruppu)WSO2公司高级软件工程师,曾带领团队将gRPC集成到开源云原生编程语言Ballerina中,在gRPC社区中十分活跃。【译者简介】张卫滨硕士,毕业于天津大学,具有十余年软件设计和开发经验,InfoQ网站社区编辑,热衷于研究开源技术,对Java、云原生、前端工程化、自动化测试等领域有着浓厚的兴趣,翻译出版了十多本畅销的技术书,包括《Spring实战(第5版)》《Spring Data实战》《RxJava反应式编程》。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0