Spring Cloud源碼精講
王濤
商品描述
"本書聚焦於SpringCloud生態中相關框架的源碼分析,包括註冊中心、配置中心、網關、遠程調用 及負載均衡。通過閱讀本書,讀者能夠迅速瞭解上述框架的核心處理流程。源碼分析在大多數情況下遵循測試用例優先的原則,以確保源碼的可復現性。 本書適合對Spring Framework 框架有一定實踐經驗,並具備Spring Boot 框架和SpringCloud 生態基礎開發能力的讀者。 "
目錄大綱
目錄
第1章 Spring Cloud Consul 初識 1
1.1 構建Spring Cloud Consul源碼環境 1
1.2 驗證Spring Cloud Consul源碼環境 3
本章小結 9
第2章 Spring Cloud Consul的服務註冊 10
2.1 Spring Cloud Commons中的服務註冊 10
2.2 Spring Cloud Consul中的服務註冊 14
本章小結 22
第3章 Spring Cloud Consul的服務發現 24
3.1 @EnableDiscoveryClient 24
3.1.1 SpringFactoryImportSelector工作原理 25
3.1.2 EnableDiscoveryClientImportSelector工作原理 26
3.2 DiscoveryClient 27
3.3 ServiceInstance 29
本章小結 30
第4章 Spring Cloud Config 初識 31
4.1 構建Spring Cloud Config 源碼環境 31
4.2 驗證Spring Cloud Config源碼環境 33
4.3 EnvironmentController 34
4.4 EncryptionController 39
本章小結 40
第5章 Spring Cloud Config服務器端的Factories 41
5.1 Spring Cloud Config 服務器端的BootstrapConfiguration 41
5.1.1 ConfigServerBootstrapConfiguration 41
5.1.2 EncryptionAutoConfiguration 45
5.2 Spring Cloud Config 服務器端的ApplicationListener 48
5.3 Spring Cloud Config服務器端的EnableAutoConfiguration 註解 48
5.3.1 ConfigServerAutoConfiguration 49
5.3.2 VaultEncryptionAutoConfiguration 52
5.4 Spring Cloud Config 服務器端的FailureAnalyzer 53
本章小結 53
第6章 Spring Cloud Config服務器端的加密 54
6.1 Spring Cloud Config 加密解密示例 54
6.2 TextEncryptor 57
6.3 TextEncryptorLocator 57
6.3.1 SingleTextEncryptorLocator 57
6.3.2 KeyStoreTextEncryptorLocator 58
6.4 EnvironmentEncryptor 59
6.4.1 VaultEnvironmentEncryptor 60
6.4.2 CipherEnvironmentEncryptor 61
6.4.3 CipherEnvironmentEncryptor的應用示例 63
6.5 ResourceEncryptor 65
本章小結 69
第7章 Spring Cloud Config服務器端的環境操作 70
7.1 EnvironmentRepository 70
7.1.1 AbstractVaultEnvironmentRepository 71
7.1.2 RedisEnvironmentRepository 75
7.1.3 PassthruEnvironmentRepository 76
7.1.4 NativeEnvironmentRepository 78
7.1.5 AbstractScmEnvironmentRepository 83
7.1.6 SvnKitEnvironmentRepository 85
7.1.7 JGitEnvironmentRepository 87
7.1.8 JdbcEnvironmentRepository 90
7.1.9 CompositeEnvironmentRepository 92
7.1.10 CredhubEnvironmentRepository 93
7.2 EnvironmentRepositoryProperties和EnvironmentRepositoryFactory 94
本章小結 95
第8章 Spring Cloud Config客戶端的Factories 96
8.1 Spring Cloud Config 客戶端的EnableAutoConfiguration 96
8.2 Spring Cloud Config 客戶端的BootstrapConfiguration 98
8.2.1 ConfigServiceBootstrapConfiguration 99
8.2.2 DiscoveryClientConfigServiceBootstrapConfiguration 100
8.3 Spring Cloud Config 客戶端的EnvironmentPostProcessor 101
8.4 Spring Cloud Config 客戶端的 FailureAnalyzer 102
8.5 Spring Cloud Config 客戶端的ConfigDataLocationResolver 102
8.6 Spring Cloud Config 客戶端的 ConfigDataLoader 106
8.7 Spring Cloud Config 客戶端的 BootstrapRegistryInitializer 112
本章小結 113
第9章 Spring Cloud Config客戶端的啟動流程 114
9.1 編寫和執行Spring Cloud Config 客戶端測試用例 114
9.2 Spring Cloud Config 客戶端的啟動過程 115
9.3 Spring Cloud Config 客戶端的刷新機制 122
9.4 Spring Cloud Config 客戶端的服務實例監控器 123
本章小結 126
第10章 Spring Cloud Gateway 初識 127
10.1 構建Spring Cloud Gateway 源碼環境 127
10.2 Spring Cloud Gateway 基本認知 129
本章小結 130
第11章 Spring Cloud Gateway 中的 Factories 131
11.1 Spring Cloud Gateway中的Factories詳解 131
11.2 Spring Cloud Gateway 自動裝配 132
11.2.1 GatewayClassPathWarningAutoConfiguration 132
11.2.2 GatewayResilience4JCircuitBreakerAutoConfiguration 133
11.2.3 GatewayNoLoadBalancerClientAutoConfiguration 134
11.2.4 GatewayMetricsAutoConfiguration 136
11.2.5 GatewayRedisAutoConfiguration 139
11.2.6 GatewayDiscoveryClientAutoConfiguration 140
11.2.7 SimpleUrlHandlerMappingGlobalCorsAutoConfiguration 141
11.2.8 GatewayReactiveLoadBalancerClientAutoConfiguration 142
11.2.9 GatewayReactiveOAuth2AutoConfiguration 143
11.2.10 GatewayAutoConfiguration 143
11.3 Spring Cloud Gateway 環境處理 144
11.4 Spring Cloud Gateway 異常分析器 145
本章小結 145
第12章 Spring Cloud Gateway 中的Event 146
12.1 EnableBodyCachingEvent 146
12.2 FilterArgsEvent 147
12.3 PredicateArgsEvent 148
12.4 RefreshRoutesEvent 148
12.5 WeightDefinedEvent 149
本章小結 151
第13章 Spring Cloud Gateway 中的Endpoint 152
13.1 AbstractGatewayControllerEndpoint 152
13.2 GatewayControllerEndpoint 154
13.3 GatewayLegacyControllerEndpoint 156
本章小結 158
第14章 Spring Cloud Gateway 中的 Route 159
14.1 路由基礎 159
14.2 RouteDefinitionLocator 160
14.3 RouteLocator 164
本章小結 169
第15章 Spring Cloud Gateway中的Filter 170
15.1 過濾器概述 170
15.2 GatewayFilter 171
15.2.1 ModifyResponseGatewayFilter 172
15.2.2 ThrottleGatewayFilter 175
15.2.3 ModifyRequestBodyGatewayFilterFactory 176
15.2.4 RewriteResponseHeaderGatewayFilterFactory 178
15.2.5 RewritePathGatewayFilterFactory 178
15.2.6 StripPrefixGatewayFilterFactory 179
15.3 GlobalFilter 181
15.3.1 NettyWriteResponseFilter 182
15.3.2 GatewayMetricsFilter 183
15.3.3 WebClientHttpRoutingFilter 184
15.3.4 NoLoadBalancerClientFilter 185
15.3.5 WebClientWriteResponseFilter 186
15.3.6 ForwardRoutingFilter 187
15.3.7 ForwardPathFilter 187
15.3.8 AdaptCachedBodyGlobalFilter 188
15.3.9 RouteToRequestUrlFilter 189
15.3.10 RemoveCachedBodyFilter 190
15.3.11 NettyRoutingFilter 190
15.3.12 ReactiveLoadBalancerClientFilter 194
15.3.13 WebsocketRoutingFilter 197
15.3.14 LoadBalancerServiceInstanceCookieFilter 198
本章小結 199
第16章 Spring Cloud Gateway中的Predicate 200
16.1 謂詞概述 200
16.1.1 GatewayPredicate 201
16.1.2 RoutePredicateFactory 202
16.2 AfterRoutePredicateFactory 203
16.3 BeforeRoutePredicateFactory 204
16.4 BetweenRoutePredicateFactory 205
16.5 CookieRoutePredicateFactory 205
16.6 HeaderRoutePredicateFactory 206
16.7 HostRoutePredicateFactory 207
16.8 MethodRoutePredicateFactory 208
16.9 PathRoutePredicateFactory 209
16.10 QueryRoutePredicateFactory 211
16.11 RemoteAddrRoutePredicateFactory 212
16.12 WeightRoutePredicateFactory 213
本章小結 214
第17章 Spring Cloud Gateway中的請求處理流程 215
17.1 流程概述 215
17.2 RoutePredicateHandlerMapping 217
17.3 FilteringWebHandler 220
17.4 請求處理流程調試 221
本章小結 226
第18章 Spring Cloud OpenFeign 初識 227
18.1 構建Spring Cloud OpenFeign源碼環境 227
18.2 構建Feign源碼環境 228
18.3 Feign使用說明 230
本章小結 231
第19章 Feign 核心分析 232
19.1 Feign Builder 232
19.2 Feign中的MethodHandler 238
19.3 Contract 243
19.3.1 Headers註解在類上的處理 244
19.3.2 RequestLine註解在方法上的處理 245
19.3.3 Body註解在方法上的處理 245
19.3.4 Headers註解在方法上的處理 246
19.3.5 Param註解在方法參數上的處理 246
19.3.6 QueryMap註解在方法參數上的處理 247
19.3.7 HeaderMap註解在方法參數上的處理 248
19.3.8 parseAndValidateMetadata 248
19.4 ParseHandlersByName 252
19.5 Feign請求處理流程 254
本章小結 255
第20章 Spring Cloud OpenFeign中的Client 256
20.1 Spring Cloud OpenFeign Client分析 256
20.2 RetryableFeignBlockingLoadBalancerClient 257
20.3 FeignBlockingLoadBalancerClient 261
20.4 Spring Cloud OpenFeign Client 自動裝配 263
本章小結 264
第21章 Spring Cloud OpenFeign中的Factories 265
21.1 Spring Cloud OpenFeign Factories 概述 265
21.2 FeignHalAutoConfiguration 266
21.3 FeignAutoConfiguration 267
21.3.1 FeignClientProperties 267
21.3.2 DefaultGzipDecoderConfiguration 268
21.3.3 FeignAutoConfiguration中的Bean定義 269
21.4 FeignAcceptGzipEncodingAutoConfiguration 和
FeignContentGzipEncodingAutoConfiguration 271
21.5 FeignLoadBalancerAutoConfiguration 273
本章小結 275
第22章 Spring Cloud OpenFeign 中的@EnableFeignClients 276
22.1 @EnableFeignClients 276
22.2 FeignClientsRegistrar 277
22.3 FeignClientFactoryBean 283
22.4 Targeter 288
22.5 FeignCircuitBreakerInvocationHandler 290
本章小結 292
第23章 Spring Cloud OpenFeign 中的SpringMvcContract 293
23.1 SpringMvcContract 293
23.1.1 parseAndValidateMetadata 294
23.1.2 processAnnotationOnClass 296
23.1.3 processAnnotationOnMethod 297
23.1.4 processAnnotationsOnParamete 299
23.2 AnnotatedParameterProcessor 301
本章小結 307
第24章 Spring Cloud Loadbalancer 初識 308
24.1 構建Spring Cloud Loadbalancer 源碼環境 308
24.2 Spring Cloud Loadbalancer 簡單案例 310
本章小結 313
第25章 Spring Cloud Loadbalancer中的負載均衡客戶端與請求 314
25.1 ServiceInstanceChooser與LoadBalancerClient 314
25.2 BlockingLoadBalancerClient分析 315
25.2.1 ServiceInstanceChooser 315
25.2.2 BlockingLoadBalancerClient 317
25.3 負載均衡請求相關分析 320
25.4 LoadBalancerLifecycle 322
本章小結 324
第26章 Spring Retry 初識 325
26.1 構建Spring Retry 源碼環境 325
26.2 Spring Retry 簡單案例 326
26.3 Spring Retry 核心接口 328
26.4 RetryConfiguration 329
本章小結 331
第27章 Spring Retry中的RetryContext與RetryPolicy分析 332
27.1 RetryContext 概述 332
27.2 RetryPolicy 概述 333
27.3 ExceptionClassifierRetryPolicy 334
27.4 SimpleRetryPolicy 336
27.5 CircuitBreakerRetryPolicy 337
27.6 NeverRetryPolicy 339
27.7 MaxAttemptsRetryPolicy 340
27.8 TimeoutRetryPolicy 340
27.9 CompositeRetryPolicy 341
27.10 RetryContextCache 343
本章小結 344
第28章 Spring Retry 中的RetryOperations 345
28.1 RetryTemplate 345
28.1.1 RetryListener 346
28.1.2 BackOffPolicy 347
28.2 doExecute 分析 348
本章小結 353
第29章 Spring Retry 與AOP相關分析 354
29.1 AnnotationAwareRetryOperationsInterceptor 354
29.2 MethodInterceptor 363
29.2.1 StatefulRetryOperationsInterceptor 363
29.2.2 RetryOperationsInterceptor 366
29.3 MethodInvocationRecoverer 368
本章小結 372
第30章 resilience4j 373
30.1 構建resilience4j 源碼環境搭建 373
30.2 resilience4j 中的熔斷機制 375
30.3 RateLimiterRegistry 378
30.4 RateLimiter 380
30.5 resilience4j中的隔離機制 385
30.5.1 SemaphoreBulkhead 386
30.5.2 FixedThreadPoolBulkhead 387
本章小結 388