目 錄
第1章 Spring Boot 2.0 1
1.1 Spring Boot概述 2
1.2 利用Spring Boot簡化應用程序開發 3
1.3 Spring Boot中的核心組件 5
1.3.1 Spring Boot Starter 5
1.3.2 Spring Boot Starter Parent POM 7
1.3.3 Spring Boot auto-configuration 7
1.3.4 啓用Spring Boot auto-configuration 9
1.3.5 Spring Boot CLI 11
1.3.6 Spring Boot Actuator 11
1.4 設置Spring Boot工作區 12
1.4.1 利用Maven設置Spring Boot 13
1.4.2 利用Gradle設置Spring Boot 13
1.5 開發第一個Spring Boot應用程序 15
1.5.1 使用Web界麵 15
1.5.2 利用STS IDE創建Spring Boot項目 17
1.6 實現REST服務 19
1.7 Spring Boot 2.0中的新特性 22
1.8 本章小結 22
第2章 定製auto-configuration 25
2.1 理解auto-configuration 26
2.2 定製Spring Boot 27
2.2.1 利用Spring Boot屬性進行定製 27
2.2.2 替換已生成的Bean 29
2.2.3 禁用特定的auto-configuration類 29
2.2.4 修改庫的依賴關係 30
2.3 基於屬性的配置外部化 31
2.3.1 屬性的評估順序 31
2.3.2 重命名Spring應用程序中的application.properties 32
2.4 外部配置應用程序屬性 33
2.5 基於日誌記錄的調優 35
2.6 YAML配置文件 36
2.6.1 針對屬性的YAML 36
2.6.2 單一YAML文件中的多個屬性 37
2.7 定製應用程序錯誤頁麵 37
2.8 本章小結 39
第3章 Spring CLI和Actuator 41
3.1 使用Spring Boot CLI 41
3.1.1 安裝Spring Boot CLI 42
3.1.2 從安裝文件中手動安裝Spring Boot CLI 42
3.1.3 使用SDKMAN!安裝Spring Boot CLI 43
3.1.4 利用OSX Homebrew安裝Spring Boot CLI 43
3.2 使用Initializr 44
3.3 Spring Boot Actuator 48
3.3.1 在應用程序中啓用Spring Boot Actuator 49
3.3.2 分析Actuator的端點 49
3.3.3 顯示配置細節 51
3.3.4 顯示指標端點 56
3.3.5 顯示應用程序信息 57
3.3.6 關閉應用程序 59
3.3.7 自定義Actuator端點 59
3.3.8 創建一個自定義端點 64
3.4 Actuator端點的安全性 66
3.5 Spring Boot 2.x中的Actuator 67
3.6 本章小結 68
第4章 Spring Cloud和配置操作 69
4.1 原生雲應用程序架構 69
4.1.1 微服務架構 71
4.1.2 微服務的優點 72
4.1.3 微服務麵臨的挑戰 73
4.2 Spring Cloud簡介 74
4.2.1 雲和微服務程序的構造塊 74
4.2.2 Spring Cloud應用 76
4.3 配置Spring Cloud應用程序 77
4.4 創建配置生成器—Spring Cloud Config Server 78
4.5 實現Cloud Config Server 79
4.5.1 配置application.properties文件 80
4.5.2 創建Git存儲庫作為配置存儲 80
4.6 利用模式配置多個存儲庫 83
4.6.1 身份驗證 84
4.6.2 force-pull屬性 85
4.7 創建Spring Cloud客戶端 85
4.8 本章小結 87
第5章 Spring Cloud Netflix和Service Discovery 89
5.1 Spring Cloud Netflix簡介 89
5.2 微服務架構中的Service Discovery 90
5.3 實現Service Discovery—Eureka Server 92
5.3.1 Maven構建配置文件 92
5.3.2 Gradle構建配置文件 93
5.3.3 啓用Eureka服務器作為Discovery Service服務器 94
5.4 實現Service Discovery—Eureka客戶端 96
5.4.1 添加Maven依賴關係配置 96
5.4.2 Gradle構建配置 98
5.5 利用Eureka注冊客戶端 99
5.5.1 使用REST服務 102
5.5.2 使用EurekaClient 102
5.5.3 Feign Client 107
5.6 本章小結 111
第6章 構建Spring Boot RESTful微服務 113
6.1 基於Spring Boot的微服務 113
6.1.1 bootstrap.yml和application.yml簡介 114
6.1.2 簡單的微服務示例 115
6.2 Spring Data簡介 128
6.2.1 Apache Ignite存儲庫 129
6.2.2 Spring Data MongoDB 129
6.2.3 Spring Data JPA 130
6.3 本章小結 130
第7章 利用Netflix Zuul創建API網關 133
7.1 API網關模式需求 133
7.1.1 API Gateway模式的優點 135
7.1.2 API Gateway的一些缺點 135
7.1.3 API Gateway模式組件 135
7.2 利用Netflix Zuul Proxy實現API Gateway 136
7.2.1 利用Maven依賴關係包含Zuul 137
7.2.2 啓用Zuul服務代理 137
7.2.3 配置Zuul屬性 138
7.2.4 添加過濾器 141
7.3 本章小結 144
第8章 利用Feign客戶端簡化HTTP API 145
8.1 Feign基礎知識 145
8.2 在雲應用程序中包含Feign 148
8.2.1 重載Feign的默認配置 153
8.2.2 創建Feign客戶端 155
8.2.3 Feign繼承機製 156
8.2.4 多重繼承 156
8.3 Feign客戶端的高級應用 157
8.4 異常處理 158
8.5 自定義編碼器和解碼器 159
8.5.1 自定義編碼器 160
8.5.2 自定義解碼器 161
8.6 Feign和Hystrix 161
8.7 Feign客戶端單元測試 163
8.8 本章小結 164
第9章 構建事件驅動和異步響應式係統 165
9.1 事件驅動型架構模式 165
9.1.1 調停者拓撲 165
9.1.2 代理拓撲 166
9.2 響應式編程簡介 167
9.2.1 Spring Reactive 167
9.2.2 ReactiveX 168
9.3 命令查詢的責任分離簡介 168
9.3.1 Event Sourcing模式簡介 170
9.3.2 最終一緻性 171
9.4 構建事件驅動型響應式異步係統 172
9.5 Spring Cloud Streaming簡介 173
9.5.1 嚮應用程序中添加Kafka 174
9.5.2 安裝和運行Kafka 175
9.5.3 Kafka配置屬性 175
9.5.4 用於寫入Kafka的服務 176
9.5.5 Rest API控製器 177
9.5.6 監聽Kafka主題 177
9.6 本章小結 181
第10章 利用Hystrix和Turbine構建彈性係統 183
10.1 斷路器模式 184
10.2 使用Hystrix library 186
10.3 在應用程序中配置Hystrix 187
10.3.1 Maven依賴關係 188
10.3.2 啓用斷路器 188
10.3.3 嚮服務中添加Hystrix注解 189
10.3.4 錯誤傳遞 192
10.4 在客戶服務中實現REST控製器 192
10.5 構建和測試客戶服務 195
10.6 自定義默認的配置項 196
10.7 Hystrix Metrics Stream 198
10.8 在項目中實現Hystrix Dashboard 199
10.9 Turbine儀錶盤 201
10.10 基於Hystrix和Feign的REST使用者 204
10.11 本章小結 206
第11章 測試Spring Boot應用程序 207
11.1 測試驅動開發 207
11.2 單元測試機製 208
11.2.1 單元測試的優點 211
11.2.2 單元測試的缺點 212
11.2.3 其他模擬庫 212
11.3 集成測試 212
11.3.1 Spring測試的優點 214
11.3.2 激活測試類的配置 214
11.4 Spring Boot應用程序的JUnit測試 214
11.5 使用Mockito模擬服務 216
11.6 測試RESTful服務契約的Postman 217
11.7 本章小結 220
第12章 微服務的容器化 221
12.1 微服務架構的容器 222
12.1.1 虛擬機和容器 222
12.1.2 容器方案的優點 224
12.1.3 麵嚮容器方案的缺點 224
12.2 Docker簡介 225
12.2.1 安裝Docker 226
12.2.2 在Linux上安裝Docker 226
12.2.3 在Windows中安裝Docker 227
12.2.4 Docker架構 229
12.2.5 Docker引擎 231
12.2.6 Docker容器 232
12.2.7 編寫Dockerfile 233
12.3 Docker化Spring Boot應用程序 235
12.4 利用Maven創建Docker鏡像 239
12.5 Docker Compose簡介 240
12.5.1 安裝Docker Compose 241
12.5.2 使用Docker Compose 242
12.5.3 編寫docker-compose文件 242
12.5.4 基於docker-compose文件的編排操作 244
12.5.5 利用docker-compose和負載平衡擴展容器 247
12.6 Kubernetes簡介 248
12.7 本章小結 249
第13章 API管理器 251
13.1 API管理 251
13.1.1 API管理軟件的優點 252
13.1.2 API管理工具 252
13.2 速率限製 252
13.3 KONG簡介 253
13.3.1 基於KONG架構的微服務REST API 254
13.3.2 未采用KONG架構的API應用 255
13.3.3 安裝KONG 255
13.3.4 使用KONG API 257
13.4 Swagger 265
13.4.1 Swagger應用 265
13.4.2 在微服務中使用Swagger 266
13.4.3 Swagger的優點 277
13.5 本章小結 278
第14章 雲部署(AWS) 279
14.1 AWS EC2實例 279
14.2 AWS上的微服務架構 284
14.3 在AWS EC2上安裝Docker 289
14.4 在AWS EC2上運行微服務 291
14.5 本章小結 293
第15章 生産服務監視和最佳實踐 295
15.1 監視容器 295
15.2 日誌機製所麵臨的挑戰 295
15.3 微服務架構的中心日誌方案 297
15.3.1 基於ELK棧的日誌聚閤 299
15.3.2 使用Sleuth的請求跟蹤 306
15.3.3 基於Zipkin的請求跟蹤 310
15.4 本章小結 315
· · · · · · (
收起)