《gRPC與雲原生套用開發》是2021年人民郵電出版社出版的圖書,作者是卡山·因德拉西里(Kasun Indrasiri),丹尼什·庫魯普(Danesh Kuruppu)。
基本介紹
- 中文名:gRPC與雲原生套用開發
- 作者:卡山·因德拉西里(Kasun Indrasiri),丹尼什·庫魯普(Danesh Kuruppu)
- 譯者:張衛濱
- 出版社:人民郵電出版社
- 出版時間:2021年1月1日
- ISBN:9787115554987
- 叢書名:圖靈程式設計叢書
內容簡介,圖書目錄,作者簡介,
內容簡介
本書全面介紹了gRPC,可作為終極指南,用於gRPC應用程式開發周期的各個階段。本書的主要內容包括gRPC的基礎知識;gRPC與常規進程間通信技術的區別;gRPC的通信模式、底層原理,以及一些非常重要的高級特性,如攔截器、截止時間、錯誤處理、元數據、多路復用、負載均衡等。此外,本書還介紹了如何使用Go語言和Java語言構建gRPC應用程式並使其在生產環境中運行,也講解了gRPC如何與Docker和Kubernetes協作,以及其生態系統中的其他內容。本書廣泛使用Go語言和Java語言編寫代碼示例,幫助讀者掌握每個概念。
圖書目錄
譯者序 ix
前言 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反應式編程》。