內容簡介
Spring Cloud是一套完整的微服務架構解決方案,它利用Spring Boot的開發便利性巧妙地簡化了分散式系統開發過程。可以說,Spring Cloud繼承了Spring Boot的優點,禁止掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分散式系統開發工具包。
本書基於Spring Cloud Greenwich.SR2版本,全面介紹了Spring Cloud針對微服務架構中核心要素的解決方案和基礎組件。其中,第1章主要介紹了微服務架構的特點、Spring Cloud的組件和版本;第2~9章主要介紹了Spring Cloud的常用組件,包括服務的註冊與發現框架Eureka、客戶端負載均衡工具Ribbon、聲明式服務調用客戶端Feign、服務容錯保護庫Hystrix、服務網關Zuul、分散式配置中心Spring Cloud Config、訊息驅動框架Spring Cloud Stream、分散式服務追蹤框架Spring Cloud Sleuth;第10章通過搭建一個小型的購物網站,手把手教讀者搭建一個微服務架構系統。希望讀者通過本書的學習,能夠學會Spring Cloud各個組件的用法,並了解分散式微服務架構的搭建過程。
本書附有配套視頻、原始碼、習題、教學課件等資源。為幫助初學者更好地學習本書中的內容,我們還提供了線上答疑。
本書既可作為高等教育本、專科院校計算機相關專業的Java類教材,也可作為對Spring Cloud感興趣人員的自學用書。
圖書目錄
第 1章 微服務架構與Spring Cloud 1
1.1 認識架構 1
1.1.1 單體架構 1
1.1.3 微服務架構 2
1.2 微服務架構的功能 3
1.3 初識Spring Cloud 4
1.3.1 Spring Cloud概述 4
1.3.2 Spring Cloud微服務架構的組件 5
1.4 Spring Cloud版本說明 6
1.4.1 Spring Cloud的版本號 6
1.4.2 Spring Cloud與Spring Boot的兼容性 7
1.5 本章小結 8
1.6 本章習題 8
第 2章 服務的註冊與發現框架Eureka 10
2.1 Eureka的工作機制 10
2.1.1 Eureka的工作原理 10
2.2 第 一個Eureka套用 12
2.2.1 搭建Eureka Server 12
2.2.2 搭建服務提供者 15
2.2.3 搭建服務消費者 17
2.3 搭建Eureka高可用集群 20
2.4 Eureka的常用配置 24
2.4.1 心跳機制 24
2.4.2 自我保護機制 24
2.4.3 其他配置 25
2.5 本章小結 25
2.6 本章習題 26
3.1 什麼是負載均衡 28
3.2 認識Ribbon 29
3.3 第 一個Ribbon實例 30
3.4 Ribbon的工作原理 36
3.5 Ribbon負載均衡策略 38
3.6 本章小結 39
3.7 本章習題 39
第4章 ---聲明式服務調用客戶端Feign 41
4.1 Feign簡介 41
4.2 Feign快速入門 41
4.2.1 第 一個Feign程式 42
4.2.2 參數綁定 46
4.2.3 繼承特性 48
4.3 Feign配置 51
4.3.1 Ribbon的相關配置 51
4.3.2 日誌配置 52
4.3.3 其他配置 54
4.4 Feign服務調用的工作原理 54
4.5 Feign的負載均衡實現原理 58
4.6 本章小結 61
4.7 本章習題 61
第5章 服務容錯保護庫Hystrix 63
5.1 Hystrix簡介 63
5.2 Hystrix快速入門 67
5.3 在Feign中使用Hystrix熔斷器 70
5.4 Hystrix的工作原理 71
5.5 使用Hystrix Dashboard監控熔斷器狀態 74
5.6 使用Hystrix和Turbine進行聚合監控 77
5.7 本章小結 80
5.8 本章習題 80
第6章 服務網關Zuul 82
6.1 Zuul概述 82
6.2 Zuul快速入門 83
6.3 Zuul路由的映射規則配置 88
6.3.1 服務路由配置 88
6.3.2 服務路由的默認規則 89
6.3.3 自定義路由映射規則 89
6.3.4 路徑匹配 90
6.3.5 路由前綴 91
6.4 Zuul與Hystrix結合實現熔斷 92
6.5 Zuul中的Eager Load配置 93
6.6 Zuul的過濾器 94
6.6.1 Zuul的過濾器介紹 94
6.6.2 Zuul請求的生命周期 94
6.6.3 自定義Zuul過濾器 95
6.6.4 禁用Zuul過濾器 96
6.7 本章小結 96
6.8 課後習題 97
第7章 分散式配置中心Spring Cloud Config 99
7.1 認識Spring Cloud Config 99
7.2 Config Server讀取配置檔案 100
7.2.1 Config Server從本地倉庫讀取配置檔案 101
7.2.2 Config Server從遠程Git倉庫讀取配置檔案 104
7.3 搭建高可用的Config Server 105
7.4 Config與Bus整合實現配置自動刷新 108
7.5 本章小結 110
7.6 本章習題 110
第8章 基於Spring Cloud的訊息驅動框架Stream 112
8.1 Spring Cloud Stream簡介 112
8.2 Spring Cloud Stream快速入門 113
8.3 Spring Cloud Stream的發布-訂閱模式 116
8.4 Spring Cloud Stream的消費組和訊息分區 121
8.4.1 Spring Cloud Stream的消費組 121
8.4.2 Spring Cloud Stream的訊息分區 123
8.5 本章小結 126
8.6 本章習題 126
第9章 分散式服務追蹤框架Spring Cloud Sleuth 128
9.1 Spring Cloud Sleuth概述 128
9.1.1 Spring Cloud Sleuth簡介 128
9.1.2 Spring Cloud Sleuth的術語 129
9.2 Spring Cloud Sleuth整合Zipkin 130
9.3 在Zipkin鏈路中添加自定義數據 139
9.4 使用RabbitMQ收集鏈路數據 140
數據 143
9.6 本章小結 150
9.7 本章習題 151
第 10章 Spring Cloud實戰——電商網站 153
10.1 項目概述 153
10.1.1 項目功能介紹 153
10.1.2 系統效果預覽 153
10.2 項目設計 157
10.2.1 架構的設計 157
10.2.2 資料庫的設計 158
10.3 項目開發準備工作 159
10.3.1 系統開發及運行環境 159
10.3.2 系統工程結構 160
10.3.3 資料庫準備工作 162
10.4 Eureka Server與公共工程的搭建 163
10.4.1 搭建Eureka Server 163
10.4.2 搭建公共工程common 165
10.5 用戶模組實現 166
10.5.1 構建用戶模組相關工程 166
10.5.2 實現用戶註冊功能 170
10.5.3 實現用戶登錄功能 173
10.6 商品模組代碼實現 175
10.6.1 構建商品模組工程 175
10.6.2 實現商品展示與模糊查詢功能 178
10.6.3 實現加入購物車功能 185
10.6.4 實現購物車購買與刪除購物車功能 188
10.6.5 實現訂單顯示功能 191
10.7 模組之間跳轉的攔截器 193
10.8 網關項目的代碼實現 195
10.9 本章小結 196