gRPC 與雲原生應用開發 : 以 Go 和 Java 為例 gRPC: Up and Running: Building Cloud Native Applications with Go and Java for Docker and Kubernetes

Kasun Indrasiri,Danesh Kuruppu

  • gRPC 與雲原生應用開發 : 以 Go 和 Java 為例-preview-1
  • gRPC 與雲原生應用開發 : 以 Go 和 Java 為例-preview-2
gRPC 與雲原生應用開發 : 以 Go 和 Java 為例-preview-1

買這商品的人也買了...

商品描述

本書全面介紹了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社區中十分活躍。

 

【譯者簡介】

張衛濱

碩士,畢業於天津大學,具有十餘年軟件設計和開發經驗,InfoQ網站社區編輯,熱衷於研究開源技術,
對Java、雲原生、前端工程化、自動化測試等領域有著濃厚的興趣,翻譯出版了十多本暢銷的技術書,
包括《Spring實戰(第5版)》《Spring Data實戰》《RxJava反應式編程》。

目錄大綱

譯者序 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