深入理解Spring Cloud與實戰

深入理解Spring Cloud與實戰

《深入理解Spring Cloud與實戰》是2020年12月電子工業出版社出版的圖書,作者為方劍。

基本介紹

  • 書名:深入理解Spring Cloud與實戰
  • 作者:方劍
  • 出版社:電子工業出版社
  • 出版時間:2020年12月 
  • 頁數:452 頁
  • 定價:106.00 元
  • 開本:16 開
  • ISBN:9787121399732
內容簡介,圖書目錄,作者簡介,

內容簡介

《深入理解Spring Cloud與實戰》共分10章,主要介紹Spring Cloud各個核心組件的設計原理,以及目前流行的Spring Cloud Alibaba和 Netflix組件,並且剖析Spring Cloud對流處理、批處理,以及目前業界流行的Serverless的支持。在介紹各部分內容時,本書將理論與實踐相結合,對每個核心知識點都給出了具體的案例套用,以幫助讀者掌握核心組件的設計理念。
本書適合對Spring Cloud感興趣並且想透徹理解Spring Cloud的讀者閱讀,也適合正在進行微服務選型的開發者閱讀。

圖書目錄

第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 使用Alibaba 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替換Alibaba 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 使用Alibaba 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 Alibaba Sentinel 199
5.4.1 Sentinel核心概述 199
5.4.2 Spring Cloud Alibaba 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

作者簡介

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

相關詞條

熱門詞條

聯絡我們