深入理解 Spring Cloud 與實戰

方劍

  • 出版商: 電子工業
  • 出版日期: 2020-12-01
  • 定價: $636
  • 售價: 8.5$541
  • 語言: 簡體中文
  • 頁數: 452
  • 裝訂: 平裝
  • ISBN: 7121399733
  • ISBN-13: 9787121399732
  • 相關分類: Java 相關技術
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

《深入理解Spring Cloud與實戰》共分10章,
主要介紹Spring Cloud各個核心組件的設計原理,
以及目前流行的Spring Cloud Alibba和Netflix組件,
並且剖析Spring Cloud對流處理、批處理,
以及目前業界流行的Serverless的支持。
在介紹各部分內容時,本書將理論與實踐相結合,
對每個核心知識點都給出了具體的案例應用,
以幫助讀者掌握核心組件的設計理念。

本書適合對Spring Cloud感興趣並且想透徹理解Spring Cloud的讀者閱讀,
也適合正在進行微服務選型的開發者閱讀。

作者簡介

方劍

花名洛夜,Spring Cloud Alibba 開源項目負責人/創始人之一。
 Apache RocketMQ Committer,Alibba Nacos Committer。
目前就職於阿里巴巴集團。
曾在個人博客上編寫過《Spring MVC源碼分析系列》、《Spring Boot源碼分析系列》文章。
目前,關注微服務、雲原生、Kubernetes。

目錄大綱

目錄
第1章Spring Cloud生態1
1.1 Spring Cloud 基礎:Spring Boot概述1
1.2 Spring Boot核心特性3
1.2.1 Web服務器: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 最新動態23

第2章服務註冊與服務發現26
2.1 微服務架構演進26
2.2 使用Alib*ba Nacos體驗第一個Spring Cloud微服務應用29
2.2.1 下載並啟動Nacos Server 30
2.2.2 啟動Nacos Discovery Provider 進行服務註冊32
2.2.3 啟動Nacos Discovery Consumer 進行服務發現33
2.3 使用Netflix Eureka替換Alib*ba Nacos註冊中心36
2.3.1 啟動Eureka Server 37
2.3.2 啟動Eureka Discovery Provider 進行服務註冊38
2.3.3 啟動Nacos Discovery Consumer 進行服務發現39
2.4 Spring Cloud 統一服務註冊/發現編程模型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章負載均衡與服務調用57
3.1 負載均衡原理57
3.2 Spring Cloud LoadBalancer負載均衡組件59
3.3 Netflix Ribbon負載均衡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配置項總結94
3.3.9 Ribbon緩存時間97
3.4 Dubbo LoadBalance 負載均衡98
3.5 OpenFeign:聲明式Rest客戶端100
3.5.1 OpenFeign概述100
3.5.2 OpenFeign 對JAX-RS 的支持102
3.5.3 OpenFeign 底層執行原理103
3.6 Dubbo Spring Cloud :服務調用的新選擇105
3.7 再談路由和負載均衡111
3.8 案例:應用流量控制112
3.8.1 流量控制應用的業務場景113
3.8.2 使用Netflix Ribbon 完成應用灰度發布115

第4章配置管理119
4.1 配置中心背景概述119
4.2 Spring/Spring Boot 與配置120
4.3 Spring Cloud與配置122
4.3.1 使用Alib*ba Nacos體驗配置的獲取及動態刷新123
4.3.2 從Spring Cloud 配置中心獲取配置的原理125
4.3.3 Spring Cloud配置動態刷新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 配置動態刷新174
4.5 再談配置動態刷新175
4.6 案例:Spring Cloud應用流量控制策略動態生效180

第5章熔斷器184
5.1 熔斷器模式概述184
5.2 手動實現一個斷路器186
5.2.1 定義State 枚舉和Counter 計數器類186
5.2.2 定義CircuitBreaker 類188
5.2.3 使用CircuitBreaker 進行場景測試191
5.3 Spring Cloud Circuit Breaker的技術演進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 保護應用,防止服務雪崩248

第6章Spring生態消息驅動253
6.1 消息中間件概述254
6.2 Spring與消息257
6.2.1 消息編程模型的統一257
6.2.2 消息的發送和訂閱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發送和接收消息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完成多節點配置動態刷新309

第8章Spring Cloud Data Flow 311
8.1 批處理/流處理概述312
8.2 流處理案例:信用卡反欺詐系統315
8.3 批處理案例:統計GitHub倉庫的各項指標數據323
8.4 Spring Cloud Data Flow批處理任務組合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 完成便利店每日賬單統計361

第9章網關366
9.1 API網關概述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 內置RoutePredicateFactory 381
9.6 Filter機制382
9.6.1 FilterDefinition和GatewayFilter 382
9.6.2 GlobalFilter 386
9.6.3 內置GatewayFilterFactory 387
9.6.4 網關內置的GlobalFilter 390
9.7 整合註冊中心和配置中心391
9.8 GatewayControllerEndpoint 397
9.9 案例:使用Spring Cloud Gateway進行路由轉發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生態的整合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