從零開始學Spring Cloud微服務架構
章為忠
- 出版商: 清華大學
- 出版日期: 2024-11-01
- 定價: $534
- 售價: 8.5 折 $454
- 語言: 簡體中文
- ISBN: 7302675171
- ISBN-13: 9787302675174
-
相關分類:
Microservices 微服務、SOA、Java 相關技術
下單後立即進貨 (約4週~6週)
相關主題
商品描述
目錄大綱
目 錄
第1章 微服務的前世今生 1
1.1 軟件架構的演化之路 1
1.2 什麽是微服務 4
1.3 為什麽需要微服務 7
1.4 微服務與單體、SOA的區別 9
1.5 什麽場景適合微服務 11
1.6 微服務架構的形態 11
1.7 本章小結 15
第2章 Spring Cloud概述 16
2.1 Spring Cloud簡介 16
2.1.1 什麽是Spring Cloud 16
2.1.2 Spring Cloud的發展前景 17
2.1.3 Spring Cloud與Dubbo的對比 18
2.2 Spring Cloud的版本 21
2.2.1 Spring Cloud的版本發布規則 21
2.2.2 Spring Cloud的項目組成 22
2.2.3 Spring Cloud與Spring Boot版本之間的對應關系 23
2.3 Spring Cloud的核心組件和架構 24
2.3.1 Spring Cloud的架構 24
2.3.2 Spring Cloud的核心組件 25
2.4 本章小結 28
第3章 Spring Boot基礎 29
3.1 Spring Boot概述 29
3.1.1 什麽是Spring Boot 29
3.1.2 Spring、Spring Boot和Spring Cloud之間的關系 30
3.2 構建Spring Boot應用helloworld 31
3.2.1 創建第一個Spring Boot工程 32
3.2.2 創建RESTful API服務 33
3.3 Web開發基礎 35
3.3.1 @Controller和@RestController 35
3.3.2 @RequestMapping 37
3.3.3 @ResponseBody 37
3.4 優雅的數據返回 38
3.4.1 為什麽要統一返回值 38
3.4.2 統一數據返回 39
3.4.3 全局異常處理 44
3.5 系統配置文件 46
3.5.1 application.properties 46
3.5.2 application.yml 48
3.5.3 實戰:自定義系統的啟動圖案 50
3.6 實戰:實現系統多環境配置 52
3.6.1 多環境配置 52
3.6.2 系統環境切換 53
3.7 本章小結 55
3.8 本章練習 55
第4章 Eureka註冊中心 56
4.1 Eureka簡介 56
4.1.1 什麽是註冊中心 56
4.1.2 為什麽需要註冊中心 57
4.1.3 什麽是Eureka 58
4.1.4 Eureka的架構原理 58
4.1.5 Eureka還是ZooKeeper 60
4.2 搭建Eureka註冊中心 63
4.2.1 搭建Eureka註冊中心 64
4.2.2 構建服務提供者 66
4.2.3 構建服務消費者 68
4.3 玩轉Eureka 71
4.3.1 自我保護模式 71
4.3.2 如何優雅地停服 73
4.3.3 安全認證 74
4.3.4 健康檢查 75
4.4 高可用Eureka註冊中心(Eureka集群) 78
4.4.1 Eureka集群架構原理 78
4.4.2 搭建高可用的Eureka集群 79
4.5 本章小結 81
4.6 本章練習 81
第5章 Ribbon實現客戶端負載均衡 82
5.1 Ribbon簡介 82
5.1.1 什麽是Ribbon 82
5.1.2 Ribbon的核心組件 84
5.1.3 Ribbon的工作原理 84
5.2 Ribbon的使用 85
5.2.1 使用Ribbon實現負載均衡 85
5.2.2 超時機制 87
5.2.3 重試機制 88
5.2.4 飢餓加載 90
5.3 Ribbon負載均衡策略 90
5.3.1 負載均衡算法 91
5.3.2 配置負載均衡算法 92
5.3.3 自定義負載均衡算法 93
5.4 本章小結 94
5.5 本章練習 95
第6章 Feign服務調用 96
6.1 Feign簡介 96
6.1.1 Feign是什麽 96
6.1.2 Feign用於解決什麽問題 97
6.1.3 Feign的工作原理 98
6.2 Feign的使用 99
6.2.1 使用Feign調用服務 99
6.2.2 @FeignClient註解參數 101
6.2.3 Feign的自定義配置 102
6.3 Feign的攔截器、編解碼器和異常處理 103
6.3.1 Feign的攔截器 103
6.3.2 Feign的編碼器 104
6.3.3 Feign的解碼器 104
6.3.4 Feign的異常處理 105
6.4 實際工程中的Feign實踐 105
6.4.1 超時設置 105
6.4.2 開啟日誌 106
6.4.3 使用OKHttp3提升性能 106
6.4.4 開啟GZIP壓縮 107
6.5 本章小結 107
6.6 本章練習 108
第7章 Hystrix的限流、降級和熔斷 109
7.1 Hystrix簡介 109
7.1.1 什麽是服務雪崩效應 109
7.1.2 什麽是Hystrix 110
7.1.3 Hystrix的功能特性 111
7.1.4 什麽是服務的限流、降級和熔斷 112
7.2 Hystrix的設計原理 112
7.2.1 Hystrix的工作流程 112
7.2.2 Hystrix的熔斷設計 114
7.2.3 Hystrix的隔離設計 114
7.2.4 Hystrix的超時機制設計 115
7.3 Hystrix的使用 116
7.3.1 Hystrix的常用註解 116
7.3.2 使用@HystrixCommand註解實現服務容錯 118
7.3.3 Hystrix實現服務資源隔離 120
7.3.4 Hystrix與Feign結合使用 121
7.4 Hystrix Dashboard服務監控 123
7.4.1 Hystrix Dashboard簡介 123
7.4.2 搭建Hystrix Dashboard監控服務 124
7.4.3 使用Hystrix Dashboard服務監控平臺 125
7.5 本章小結 127
7.6 本章練習 127
第8章 構建微服務網關Spring Cloud Gateway 128
8.1 微服務網關簡介 128
8.1.1 什麽是微服務網關 128
8.1.2 為什麽需要微服務網關 129
8.1.3 微服務網關的核心功能 130
8.1.4 微服務網關與傳統API網關的區別 131
8.1.5 當前流行的微服務網關 131
8.2 使用Spring Cloud Gateway構建微服務網關 133
8.2.1 Spring Cloud Gateway簡介 133
8.2.2 Spring Cloud Gateway的工作流程 134
8.2.3 搭建Spring Cloud Gateway微服務網關 135
8.2.4 使用Java Bean配置Gateway路由 137
8.3 路由和斷言 137
8.3.1 服務名路由轉發 137
8.3.2 斷言 138
8.4 過濾器 139
8.4.1 什麽是過濾器 139
8.4.2 使用過濾器實現權限驗證 139
8.5 本章小結 141
8.6 本章練習 142
第9章 配置中心Spring Cloud Config 143
9.1 配置中心簡介 143
9.1.1 什麽是配置中心 143
9.1.2 配置中心的作用 144
9.1.3 為什麽需要配置中心 145
9.1.4 當前流行的微服務配置中心 146
9.2 Spring Cloud Config簡介 147
9.2.1 什麽是Spring Cloud Config 147
9.2.2 Spring Cloud Config的工作原理 148
9.3 使用Spring Cloud Config構建配置中心 149
9.3.1 創建配置中心服務端 149
9.3.2 創建配置中心客戶端 152
9.3.3 配置文件命名規則 153
9.4 實現配置動態刷新 154
9.4.1 技術方案 155
9.4.2 Spring Cloud Bus簡介 155
9.4.3 使用Spring Cloud Bus實現配置動態刷新 156
9.5 本章小結 158
9.6 本章練習 158
第10章 微服務的統一認證和授權 159
10.1 微服務安全概覽 159
10.1.1 認證和授權在微服務中的重要性 159
10.1.2 微服務下認證和授權的挑戰 160
10.1.3 常見的認證和授權解決方案 161
10.2 OAuth 2.0簡介 165
10.2.1 什麽是OAuth 2.0 165
10.2.2 OAuth 2.0的使用場景 166
10.2.3 OAuth 2.0的基本流程 167
10.2.4 OAuth 2.0的授權模式 168
10.3 Spring Cloud如何實現認證和授權 168
10.3.1 實現方案 168
10.3.2 準備工作 170
10.3.3 搭建認證和授權服務 170
10.3.4 網關集成認證和授權 175
10.3.5 搭建訂單管理服務 179
10.3.6 測試驗證 181
10.4 本章小結 184
10.5 本章練習 184
第11章 集成Prometheus+Grafana監控服務 185
11.1 監控系統簡介 185
11.1.1 什麽是監控系統 185
11.1.2 監控系統的作用 185
11.1.3 監控系統的架構組件 186
11.1.4 當前流行的監控系統 187
11.2 使用Prometheus+Grafana搭建監控系統 190
11.2.1 Prometheus的組件結構 190
11.2.2 安裝Prometheus Server 191
11.2.3 安裝Node Exporter 191
11.2.4 安裝Grafana 194
11.3 使用Prometheus監控Spring Boot的應用 198
11.3.1 如何監控Spring Boot應用 198
11.3.2 Spring Boot集成Micrometer實現數據採集 199
11.3.3 Prometheus收集應用數據並展示到Grafana 200
11.3.4 Spring Boot自定義監控指標 204
11.4 使用Grafana實現配置監控告警 206
11.4.1 告警的實現方式 206
11.4.2 配置Grafana告警 207
11.5 使用Alertmanager實現監控告警 211
11.5.1 Alertmanager的配置和安裝 211
11.5.2 實現Alertmanager告警 213
11.6 本章小結 216
11.7 本章練習 216
第12章 微服務全鏈路跟蹤SkyWalking 217
12.1 全鏈路追蹤簡介 217
12.1.1 什麽是全鏈路追蹤 217
12.1.2 為什麽需要全鏈路追蹤 218
12.1.3 全鏈路追蹤的實現原理 219
12.1.4 當前流行的全鏈路追蹤組件 220
12.2 SkyWalking簡介 223
12.2.1 什麽是SkyWalking 223
12.2.2 為什麽要選擇SkyWalking 224
12.2.3 SkyWalking的組件架構 225
12.3 搭建SkyWalking系統 225
12.3.1 搭建SkyWalking服務端 226
12.3.2 SkyWalking的使用及指標參數 228
12.4 Spring Boot項目如何接入SkyWalking 236
12.4.1 Agent簡介 236
12.4.2 下載Agent 237
12.4.3 如何使用Agent 238
12.4.4 Spring Boot集成SkyWalking 239
12.5 本章小結 240
12.6 本章練習 241
第13章 使用Docker和Docker Compose實現容器化部署 242
13.1 Docker入門 242
13.1.1 Docker簡介 242
13.1.2 Docker的常用命令 244
13.1.3 Spring Boot項目添加Docker支持 246
13.1.4 構建、運行Docker鏡像 248
13.2 Docker Compose入門 249
13.2.1 Docker Compose簡介 250
13.2.2 Docker Compose的安裝 250
13.2.3 Docker Compose的常用命令 251
13.2.4 Docker Compose配置文件 252
13.3 使用Docker Compose編排Spring Cloud微服務 254
13.3.1 準備工作 254
13.3.2 打包Docker鏡像 254
13.3.3 Docker Compose運行鏡像 255
13.4 本章小結 257
13.5 本章練習 257
第14章 項目實戰:從零開始實現圖書管理系統 258
14.1 項目介紹 258
14.1.1 項目背景 258
14.1.2 項目目標 259
14.2 系統架構 259
14.2.1 技術選型 259
14.2.2 架構設計 260
14.2.3 功能模塊說明 260
14.2.4 服務拆分和劃分 261
14.3 搭建系統框架 261
14.3.1 項目結構 262
14.3.2 創建父工程 262
14.3.3 創建註冊中心 264
14.3.4 創建微服務網關 265
14.3.5 創建配置中心 266
14.4 實現模塊功能 268
14.4.1 創建認證和授權服務 268
14.4.2 創建系統管理服務 272
14.4.3 創建圖書管理服務 274
14.4.4 創建借書管理服務 276
14.5 系統演示 279
14.6 本章小結 282