定 價:¥106.00
作 者: | 方劍 著 |
出版社: | 電子工業(yè)出版社 |
叢編項: | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787121399732 | 出版時間: | 2020-12-01 | 包裝: | 平裝 |
開本: | 16 | 頁數(shù): | 452 | 字?jǐn)?shù): |
第1章 Spring Cloud生態(tài) 1
1.1 Spring Cloud 基礎(chǔ):Spring Boot概述 1
1.2 Spring Boot核心特性 3
1.2.1 Web服務(wù)器:WebServer 3
1.2.2 條件注解:@ConditionalOnXX 7
1.2.3 工廠加載機制 10
1.2.4 配置加載機制 12
1.2.5 Spring Boot Actuator 15
1.3 Spring Cloud 概述 17
1.3.1 Spring Cloud誕生背景 17
1.3.2 Netflix OSS 19
1.3.3 Spring Cloud項目 20
1.3.4 Spring Cloud 版本 21
1.3.5 Spring Cloud 最新動態(tài) 23
第2章 服務(wù)注冊與服務(wù)發(fā)現(xiàn) 26
2.1 微服務(wù)架構(gòu)演進(jìn) 26
2.2 使用Alib*ba Nacos體驗第一個Spring Cloud微服務(wù)應(yīng)用 29
2.2.1 下載并啟動Nacos Server 30
2.2.2 啟動 Nacos Discovery Provider 進(jìn)行服務(wù)注冊 32
2.2.3 啟動 Nacos Discovery Consumer 進(jìn)行服務(wù)發(fā)現(xiàn) 33
2.3 使用Netflix Eureka替換Alib*ba Nacos注冊中心 36
2.3.1 啟動Eureka Server 37
2.3.2 啟動 Eureka Discovery Provider 進(jìn)行服務(wù)注冊 38
2.3.3 啟動 Nacos Discovery Consumer 進(jìn)行服務(wù)發(fā)現(xiàn) 39
2.4 Spring Cloud 統(tǒng)一服務(wù)注冊/發(fā)現(xiàn)編程模型 40
2.4.1 DiscoveryClient和ReactiveDiscoveryClient 40
2.4.2 ServiceInstance和Registration 44
2.4.3 ServiceRegistry 48
2.4.4 ServiceRegistryEndpoint 50
2.5 雙注冊雙訂閱模式 51
2.5.1 雙注冊雙訂閱模式分析 51
2.5.2 案例:使用雙注冊雙訂閱模式將Eureka注冊中心遷移到Nacos注冊中心 54
第3章 負(fù)載均衡與服務(wù)調(diào)用 57
3.1 負(fù)載均衡原理 57
3.2 Spring Cloud LoadBalancer負(fù)載均衡組件 59
3.3 Netflix Ribbon負(fù)載均衡 74
3.3.1 RibbonLoadBalancerClient 74
3.3.2 RibbonServer和Server 79
3.3.3 ServerIntrospector 82
3.3.4 ILoadBalancer 84
3.3.5 ServerList 87
3.3.6 ServerListUpdater 90
3.3.7 ServerStats 92
3.3.8 Netflix Ribbon配置項總結(jié) 94
3.3.9 Ribbon緩存時間 97
3.4 Dubbo LoadBalance 負(fù)載均衡 98
3.5 OpenFeign:聲明式Rest客戶端 100
3.5.1 OpenFeign概述 100
3.5.2 OpenFeign 對 JAX-RS 的支持 102
3.5.3 OpenFeign 底層執(zhí)行原理 103
3.6 Dubbo Spring Cloud :服務(wù)調(diào)用的新選擇 105
3.7 再談路由和負(fù)載均衡 111
3.8 案例:應(yīng)用流量控制 112
3.8.1 流量控制應(yīng)用的業(yè)務(wù)場景 113
3.8.2 使用 Netflix Ribbon 完成應(yīng)用灰度發(fā)布 115
第4章 配置管理 119
4.1 配置中心背景概述 119
4.2 Spring/Spring Boot 與配置 120
4.3 Spring Cloud與配置 122
4.3.1 使用Alib*ba Nacos體驗配置的獲取及動態(tài)刷新 123
4.3.2 從Spring Cloud 配置中心獲取配置的原理 125
4.3.3 Spring Cloud配置動態(tài)刷新 135
4.4 Spring Cloud Config Server/Client 152
4.4.1 Spring Cloud Config Server 152
4.4.2 Spring Cloud Config Client 165
4.4.3 Spring Cloud Config Client 與 Service Discovery 整合 171
4.4.4 Spring Cloud Config 配置動態(tài)刷新 174
4.5 再談配置動態(tài)刷新 175
4.6 案例:Spring Cloud應(yīng)用流量控制策略動態(tài)生效 180
第5章 熔斷器 184
5.1 熔斷器模式概述 184
5.2 手動實現(xiàn)一個斷路器 186
5.2.1 定義 State 枚舉和 Counter 計數(shù)器類 186
5.2.2 定義 CircuitBreaker 類 188
5.2.3 使用 CircuitBreaker 進(jìn)行場景測試 191
5.3 Spring Cloud Circuit Breaker的技術(shù)演進(jìn) 193
5.4 Alib*ba Sentinel 199
5.4.1 Sentinel核心概述 199
5.4.2 Spring Cloud Alib*ba Sentinel 204
5.4.3 Sentinel VS OpenFeign和RestTemplate 207
5.4.4 Sentinel限流與Dashboard 211
5.4.5 Sentinel的高級特性 215
5.5 Netflix Hystrix 219
5.5.1 Hystrix核心概述 219
5.5.2 Spring Cloud Netflix Hystrix 225
5.5.3 Hystrix限流與Dashboard 227
5.5.4 Hystrix的高級特性 231
5.6 Resilience4j 235
5.6.1 Resilience4j 體驗 236
5.6.2 Spring Cloud Resilience4j 241
5.6.3 Resilience4j的高級特性 244
5.7 案例:使用 Sentinel 保護(hù)應(yīng)用,防止服務(wù)雪崩 248
第6章 Spring生態(tài)消息驅(qū)動 253
6.1 消息中間件概述 254
6.2 Spring與消息 257
6.2.1 消息編程模型的統(tǒng)一 257
6.2.2 消息的發(fā)送和訂閱 258
6.2.3 WebSocket 265
6.2.4 案例:使用spring-messaging處理WebSocket 268
6.3 Spring Integration 271
6.3.1 Spring Integration 核心組件概述 272
6.3.2 Spring Integration核心組件的使用 275
6.4 Spring Cloud Stream 277
6.4.1 使用Spring Cloud Stream發(fā)送和接收消息 277
6.4.2 理解 Binder 和 Binding 280
6.4.3 深入理解Spring Cloud Stream 282
6.4.4 Spring Cloud Stream的高級特性 284
第7章 消息總線 295
7.1 消息總線概述 295
7.2 深入理解Spring Cloud Bus 296
7.2.1 Spring Cloud Bus的使用 297
7.2.2 Spring Cloud Bus的原理 300
7.2.3 Spring Cloud Bus 事件 302
7.2.4 Spring Cloud Bus 源碼分析 305
7.3 案例:使用Spring Cloud Bus完成多節(jié)點配置動態(tài)刷新 309
第8章 Spring Cloud Data Flow 311
8.1 批處理/流處理概述 312
8.2 流處理案例:信用卡反欺詐系統(tǒng) 315
8.3 批處理案例:統(tǒng)計GitHub倉庫的各項指標(biāo)數(shù)據(jù) 323
8.4 Spring Cloud Data Flow批處理任務(wù)組合 331
8.5 Spring Cloud Data Flow Shell 335
8.6 Spring Cloud Skipper 337
8.7 Spring Cloud Deployer 341
8.7.1 TaskLauncher 接口 342
8.7.2 AppDeployer 接口 344
8.7.3 LocalAppDeployer 348
8.8 Spring Cloud Task 349
8.8.1 體驗Spring Cloud Task 349
8.8.2 深入理解Spring Cloud Task 351
8.8.3 Spring Cloud Task Batch 354
8.9 Spring Batch 358
8.9.1 Spring Batch 核心組件 358
8.9.2 案例:使用 Spring Batch 完成便利店每日賬單統(tǒng)計 361
第9章 網(wǎng)關(guān) 366
9.1 API網(wǎng)關(guān)概述 366
9.2 Netflix Zuul 368
9.3 非阻塞式的Spring Cloud Gateway 371
9.4 Route路由信息 376
9.5 Predicate機制 377
9.5.1 PredicateDefinition和AsyncPredicate 377
9.5.2 RoutePredicateFactory 378
9.5.3 內(nèi)置RoutePredicateFactory 381
9.6 Filter機制 382
9.6.1 FilterDefinition和GatewayFilter 382
9.6.2 GlobalFilter 386
9.6.3 內(nèi)置 GatewayFilterFactory 387
9.6.4 網(wǎng)關(guān)內(nèi)置的GlobalFilter 390
9.7 整合注冊中心和配置中心 391
9.8 GatewayControllerEndpoint 397
9.9 案例:使用Spring Cloud Gateway進(jìn)行路由轉(zhuǎn)發(fā) 398
第10章 Spring Cloud與Serverless 401
10.1 Serverless 401
10.2 Java Function 403
10.3 Spring Cloud Function 405
10.4 Spring Cloud Function與Spring生態(tài)的整合 411
10.4.1 Spring Cloud Function與Spring Web/WebFlux 412
10.4.2 Spring Cloud Function 與 Spring Cloud Stream 420
10.4.3 Spring Cloud Function 與 Spring Cloud Task 427
10.5 案例:使用GCP Cloud Functions體驗Spring Cloud Function 430