第1章 微服務架構設計 1
1.1 直麵微服務架構 1
1.1.1 分布式係統與微服務架構 1
1.1.2 微服務架構的優勢與挑戰 3
1.1.3 實施微服務架構 5
1.2 服務建模方法 6
1.2.1 服務的模型 6
1.2.2 服務的邊界 7
1.2.3 服務的數據 7
1.3 服務拆分與集成 8
1.3.1 服務拆分 8
1.3.2 服務集成 9
1.4 微服務架構的基礎組件和關鍵要素 10
1.4.1 微服務架構的基礎組件 11
1.4.2 微服務架構的關鍵元素 11
1.5 實現微服務架構 13
1.5.1 微服務架構技術體係 13
1.5.2 微服務架構實現技術選型 14
1.6 案例分析 17
1.7 全書架構 18
1.8 本章小結 19
第2章 使用Spring Boot構建服務 21
2.1 引入Spring Boot 21
2.2 基於Spring Boot的第一個服務 23
2.2.1 環境準備 23
2.2.2 實現RESTful服務 24
2.3 Spring Boot常見功能 28
2.3.1 集成Spring Data 28
2.3.2 集成消息中間件 37
2.3.3 係統監控 39
2.4 Spring Boot基本原理 44
2.5 本章小結 46
第3章 Spring Cloud Netflix Eureka與服務治理 47
3.1 服務治理解決方案 48
3.1.1 服務治理的需求和模型 48
3.1.2 服務治理的基本方案 49
3.2 構建Eureka服務 52
3.2.1 構建單個Eureka服務器 52
3.2.2 構建Eureka服務器集群 55
3.3 使用Eureka注冊和發現服務 57
3.3.1 通過配置實現服務注冊 58
3.3.2 獲取服務注冊信息 59
3.4 Eureka基本架構 61
3.4.1 Eureka服務注冊和發現架構 61
3.4.2 Eureka高可用架構 64
3.4.3 Eureka區域親和性 65
3.5 本章小結 66
第4章 Spring Cloud Netflix Ribbon與負載均衡 67
4.1 負載均衡 68
4.1.1 負載均衡的類型 68
4.1.2 負載均衡的算法 70
4.2 使用Ribbon實現客戶端負載均衡 71
4.2.1 Spring Cloud Netflix Ribbon簡介 71
4.2.2 使用DiscoveryClient查找服務 72
4.2.3 通過RestTemplate調用服務 74
4.3 Ribbon基本架構 78
4.3.1 Ribbon核心機製 79
4.3.2 Ribbon負載均衡策略 81
4.3.3 @LoadBalanced注解與RestTemplate 82
4.3.4 @RibbonClient注解與自定義負載均衡策略 83
4.4 本章小結 85
第5章 Spring Cloud Netflix Hystrix與服務容錯 86
5.1 服務消費者容錯思想和模式 87
5.1.1 服務消費者容錯的需求 87
5.1.2 服務隔離 88
5.1.3 服務熔斷 90
5.1.4 服務迴退 91
5.2 使用Hystrix實現服務容錯 91
5.2.1 引入Hystrix 92
5.2.2 使用Hystrix實現服務隔離 93
5.2.3 使用Hystrix實現服務熔斷 96
5.2.4 使用Hystrix實現服務迴退 99
5.3 Hystrix基本原理 101
5.3.1 服務隔離 101
5.3.2 服務熔斷 103
5.3.3 Hystrix配置項 105
5.4 本章小結 109
第6章 Spring Cloud Netflix Zuul與API網關 110
6.1 服務網關的設計理念 111
6.1.1 服務網關的作用 111
6.1.2 服務網關的結構和功能 112
6.2 使用Zuul構建服務網關 113
6.2.1 構建Zuul服務器 113
6.2.2 配置Zuul服務路由 115
6.3 Zuul基本架構 120
6.3.1 ZuulFilter組件架構 120
6.3.2 使用Zuul過濾器 124
6.4 本章小結 129
第7章 Spring Cloud Config與配置中心 130
7.1 分布式配置中心方案 131
7.1.1 分布式配置模型 131
7.1.2 配置中心實現工具 133
7.2 構建配置中心服務器 134
7.2.1 引入Spring Cloud Config 134
7.2.2 實現基於本地文件係統的配置方案 135
7.2.3 實現基於Git的配置方案 139
7.3 使用配置服務 140
7.3.1 訪問配置項 141
7.3.2 配置數據安全性 145
7.4 Spring Cloud Config特性 148
7.4.1 Spring Cloud Config對比Zookeeper 148
7.4.2 Spring Cloud Config高可用 149
7.5 本章小結 150
第8章 Spring Cloud Stream與事件驅動 151
8.1 事件驅動架構與模型 152
8.1.1 基本事件驅動架構與實現機製 152
8.1.2 事件驅動與領域模型 155
8.2 引入Spring Cloud Stream 157
8.2.1 Spring Cloud Stream基本架構 157
8.2.2 Spring Cloud Stream與Spring Integration 159
8.2.3 Spring Cloud Stream與消息中間件 162
8.3 實現消息發布者 165
8.3.1 消息發送場景與實現流程 165
8.3.2 在服務中添加消息發布者 166
8.4 實現消息消費者 170
8.4.1 消息消費場景與實現流程 170
8.4.2 在服務中添加消息消費者 172
8.5 本章小結 177
第9章 Spring Cloud Security與服務安全 178
9.1 服務訪問安全性與OAuth協議 178
9.1.1 微服務架構中的安全性設計 179
9.1.2 OAuth協議 180
9.2 構建OAuth認證服務器 184
9.2.1 引入Spring Cloud Security 185
9.2.2 初始化用戶與客戶端 186
9.2.3 生成Token 191
9.3 使用OAuth保護服務訪問 195
9.3.1 集成OAuth認證服務 195
9.3.2 創建服務訪問策略 196
9.3.3 使用OAuth2RestTemplate傳播Token 201
9.4 本章小結 206
第10章 Spring Cloud Sleuth與服務監控 207
10.1 服務監控與Spring Cloud Sleuth 207
10.1.1 服務監控基本原理 207
10.1.2 引入Spring Cloud Sleuth 209
10.2 整閤Spring Cloud Sleuth與Zipkin 215
10.2.1 Zipkin基本結構 215
10.2.2 引入Zipkin 216
10.2.3 使用Zipkin跟蹤服務調用鏈路 218
10.2.4 使用Zipkin實現自定義跟蹤 226
10.3 本章小結 228
第11章 Spring Test與服務測試 230
11.1 微服務測試的方法 231
11.1.1 單元測試 231
11.1.2 集成測試 233
11.1.3 端到端測試 233
11.2 測試Spring Boot應用程序 234
11.2.1 初始化測試環境 234
11.2.2 執行單元測試 237
11.3 使用Mock和注解實施集成測試 241
11.3.1 使用@JsonTest注解測試JSON數據 242
11.3.2 使用@DataJpaTest注解測試Repository層 244
11.3.3 使用Mock測試Service層 248
11.3.4 使用Mock和@WebMvcTest注解測試Controller層 252
11.4 消費者驅動的契約測試 254
11.4.1 麵嚮契約的端對端測試 254
11.4.2 實現麵嚮契約的端對端測試 257
11.5 本章小結 266
第12章 Docker與服務部署 267
12.1 Docker與微服務架構 267
12.1.1 Docker的優勢 268
12.1.2 Docker組件與命令 268
12.2 使用Dockerfile構建服務鏡像 272
12.2.1 Dockerfile命令 272
12.2.2 使用Dockerfile命令構建鏡像 273
12.3 使用Docker Compose編排服務 276
12.3.1 Docker Compose組件與命令 276
12.3.2 使用Docker Compose 279
12.3.3 Docker Compose案例分析 281
12.4 本章小結 283
參考文獻 284
· · · · · · (
收起)