Spring回響式編程

Spring回響式編程

《Spring回響式編程》是2020年人民郵電出版社出版的圖書,作者是[烏克蘭] 奧萊·多庫卡、伊戈爾·洛茲恩斯基。

基本介紹

  • 中文名:Spring回響式編程
  • 作者:[烏克蘭] 奧萊·多庫卡、[烏克蘭]伊戈爾·洛茲恩斯基
  • 出版社人民郵電出版社
  • ISBN:9787115536716
內容簡介,圖書目錄,作者簡介,

內容簡介

當下激烈的市場競爭導致企業對高回響性系統的需求不斷增加,這對開發人員的回響式編程技術提出了新的要求。《Spring回響式編程》深入淺出,從回響式系統的基本原理入手,詳盡地介紹了回響式系統的優勢和套用方向。同時,本書藉助Spring框架及WebFlux等工具,對回響式編程進行了極具實踐性的指導。此外,本書還引入了Project Reactor這一回響式編程利器。在完成對本書的學習後,你將有能力利用這些工具,構建回響式系統。
本書適合有志於學習回響式編程的程式設計師和需要構建回響式系統的開發人員閱讀。

圖書目錄

第 1 章 為什麼選擇回響式 Spring 1
1.1 為什麼需要回響性 1
1.2 回響性套用案例 6
1.3 為什麼採用回響式 Spring 9
1.4 小結 16
第 2 章 Spring 回響式編程—— 基本概念 17
2.1 Spring 的早期回響式解決方案 17
2.1.1 觀察者模式 18
2.1.2 觀察者模式使用示例 20
2.1.3 基於@EventListener 註解的發布訂閱模式 23
2.1.4 使用@EventListener 註解構建應用程式 24
2.2 使用 RxJava 作為回響式框架 31
2.2.1 觀察者加疊代器等於回響式流 31
2.2.2 生產和消費流數據 33
2.2.3 生成異步序列 35
2.2.4 流轉換和彈珠圖 36
2.2.5 RxJava 的先決條件和優勢 39
2.2.6 使用 RxJava 重建我們的應用程式 41
2.3 回響式庫簡史 45
2.4 回響式現狀 46
2.5 小結 48
第 3 章 回響式流——新的流標準 49
3.1 無處不在的回響性 49
3.1.1 API 不一致性問題 49
3.1.2 “拉”與“推” 52
3.1.3 流量控制問題 56
3.1.4 解決方案 60
3.2 回響式流規範基礎知識 60
3.2.1 回響式流規範實戰 66
3.2.2 回響式流技術兼容套件 71
3.2.3 JDK 9 77
3.3 高級主題——回響式流中的異步和並行 79
3.4 回響式環境的轉變 81
3.4.1 RxJava 的轉變 81
3.4.2 Vert.x 的調整 83
3.4.3 Ratpack 的改進 84
3.4.4 MongoDB 回響式流驅動程式 85
3.4.5 回響式技術組合實戰 86
3.5 小結 89
第 4 章 Project Reactor——回響式 應用程式的基礎 90
4.1 Project Reactor 簡史 90
4.1.1 Project Reactor 1.x 版本 91
4.1.2 Project Reactor 2.x 版本 93
4.2 Project Reactor 精髓 94
4.2.1 在項目中添加 Reactor 96
4.2.2 回響式類型——Flux 和 Mono 96
4.2.3 創建 Flux 序列和 Mono 序列 100
4.2.4 訂閱回響式流 102
4.2.5 用操作符轉換回響式序列 105
4.2.6 以編程方式創建流 119
4.2.7 錯誤處理 125
4.2.8 背壓處理 127
4.2.9 熱數據流和冷數據流 127
4.2.10 處理時間 131
4.2.11 組合和轉換回響式流 131
4.2.12 處理器 133
4.2.13 測試和調試 Project Reactor 134
4.2.14 Reactor 外掛程式 134
4.3 Project Reactor 的高級主題 135
4.3.1 回響式流的生命周期 135
4.3.2 Reactor 中的執行緒調度模型 140
4.3.3 Project Reactor 內幕 149
4.4 小結 153
第 5 章 使用 Spring Boot 2 實現回響性 154
5.1 快速啟動是成功的關鍵 154
5.1.1 使用 Spring Roo 嘗試更快 地開發應用程式 156
5.1.2 Spring Boot 是快速增長的 應用程式的關鍵 156
5.2 Spring Boot 2.0 中的回響式 157
5.2.1 Spring Core 中的回響式 157
5.2.2 回響式 Web 160
5.2.3 回響式 Spring Data 162
5.2.4 回響式 Spring Session 163
5.2.5 回響式 Spring Security 163
5.2.6 回響式 Spring Cloud 163
5.2.7 回響式 Spring Test 164
5.2.8 回響式監控 164
5.3 小結 165
第 6 章 WebFlux 異步非阻塞通信 166
6.1 WebFlux 作為核心回響式伺服器基礎 166
6.1.1 回響式 Web 核心 169
6.1.2 回響式 Web 和 MVC 框架 171
6.1.3 基於 WebFlux 的純函式式Web 174
6.1.4 基於 WebClient 的非阻塞 跨服務通信 178
6.1.5 回響式 WebSocket API 181
6.1.6 作為 WebSocket 輕量級 替代品的回響式 SSE 184
6.1.7 回響式模板引擎 186
6.1.8 回響式 Web 安全 188
6.1.9 與其他回響式庫的互動 191
6.2 對比 WebFlux 和 Web MVC 192
6.2.1 比較框架時的定律 192
6.2.2 全面分析和比較 199
6.3 WebFlux 的套用 216
6.3.1 基於微服務的系統 216
6.3.2 處理客戶端連線速度慢的系統 217
6.3.3 流或實時系統 217
6.3.4 WebFlux 實戰 217
6.4 小結 221
第 7 章 回響式資料庫訪問 222
7.1 現代數據處理模式 222
7.1.1 領域驅動設計 223
7.1.2 微服務時代的數據存儲 223
7.1.3 多語言持久化 226
7.1.4 資料庫即服務 227
7.1.5 跨微服務共享數據 228
7.2 獲取數據的同步模型 233
7.2.1 資料庫訪問的連線協定 233
7.2.2 資料庫驅動程式 235
7.2.3 JDBC 236
7.2.4 Spring JDBC 238
7.2.5 Spring Data JDBC 239
7.2.6 JPA 241
7.2.7 Spring Data JPA 242
7.2.8 Spring Data NoSQL 243
7.2.9 同步模型的局限性 245
7.2.10 同步模型的優點 247
7.3 使用 Spring Data 進行回響式數據訪問 247
7.3.1 使用 MongoDB 回響式庫 248
7.3.2 組合存儲庫操作 251
7.3.3 回響式存儲庫的工作原理 255
7.3.4 回響式事務 261
7.3.5 Spring Data 回響式連線器 268
7.3.6 限制和預期的改進 270
7.3.7 異步資料庫訪問 271
7.3.8 回響式關係型資料庫連線 273
7.4 將同步存儲庫轉換為回響式存儲庫 276
7.4.1 使用 rxjava2-jdbc 庫 276
7.4.2 包裝同步 CrudRepository 278
7.5 回響式 Spring Data 實戰 281
7.6 小結 284
第 8 章 使用 Cloud Streams 提升伸縮性 286
8.1 訊息代理伺服器是訊息驅動系統的關鍵 286
8.1.1 伺服器端負載均衡 287
8.1.2 基於 Spring Cloud 和 Ribbon實現客戶端負載均衡
288
8.1.3 訊息代理伺服器——訊息傳遞的彈性可靠層 293
8.1.4 訊息代理伺服器市場 297
8.2 Spring Cloud Streams——通向Spring 生態系統的橋樑
297
8.3 雲上的回響式編程 304
8.3.1 Spring Cloud Data Flow 305
8.3.2 基於 Spring Cloud Function的最細粒度應用程式
306
8.3.3 Spring Cloud——作為數據流 一部分的函式 311
8.4 基於 RSocket 的低延遲、回響式 訊息傳遞 315
8.4.1 對比 RSocket 與 Reactor-Netty 315
8.4.2 Java 中的 RSocket 316
8.4.3 對比 RSocket 和 gRPC 321
8.4.4 Spring 框架中的 RSocket 322
8.4.5 其他框架中的 RSocket 324
8.4.6 RSocket 小結 324
8.5 小結 325
第 9 章 測試回響式應用程式 326
9.1 為什麼回響式流難以測試 326
9.2 使用 StepVerifier 測試回響式流 327
9.2.1 StepVerifier 要點 327
9.2.2 使用 StepVerifier 進行 高級測試 330
9.2.3 處理虛擬時間 331
9.2.4 驗證回響式上下文 333
9.3 測試 WebFlux 334
9.3.1 使用 WebTestClient 測試 控制器 334
9.3.2 測試 WebSocket 339
9.4 小結 342
第 10 章 最後,發布! 343
10.1 DevOps 友好型應用程式的重要性 343
10.2 監控回響式 Spring 應用程式 345
10.2.1 Spring Boot Actuator 346
10.2.2 Micrometer(千分尺) 354
10.2.3 監控回響式流 356
10.2.4 基於 Spring Boot Sleuth 的 分散式跟蹤 359
10.2.5 基於 Spring Boot Admin 2.x的漂亮 UI 361
10.3 部署到雲端 363
10.3.1 部署到 Amazon Web 服務 365
10.3.2 部署到 Google Kubernetes引擎 365
10.3.3 部署到 Pivotal Cloud Foundry 365
10.3.4 基於 Kubernetes 和 Istio 的FaaS 平台 Knative
369
10.3.5 對成功部署應用程式的建議 369
10.4 小結 370

作者簡介

奧萊.多庫卡(Oleh Dokuka)
資深軟體工程師,Pivotal公司Java Champion,作為Project Reactor和Spring框架的重要貢獻者,熟悉其內部機制,並提倡使用Project Reactor進行日常回響式編程。他經常在軟體開發中實際套用Spring框架和Project Reactor,非常了解使用這些技術構建回響式系統的方法。
伊戈爾.洛茲恩斯基(Igor Lozynskyi)
資深Java開發人員,擁有約10年的Java平台經驗,主要致力於開發可靠、可伸縮且速度極快的系統,熱衷於打理生活和軟體開發中總在變化的項目。
鄭天民(譯者)
網名天涯蘭,日本足利工業大學信息工程學碩士,研究方向為人工智慧在大規模調度系統中的套用。在國際三大索引上發表多篇論文,被引用50餘次。具有10餘年軟體行業從業經驗,曾先後任職於多家大型上市公司和網際網路、電商、健康等類型的獨角獸公司,擔任系統分析架構師、技術總監和CTO等職務,目前在一家大健康領域的創新型科技公司擔任CTO,帶領百餘人發技術團隊,負責產品研發與技術團隊管理工作。主持過10餘個面向研發人員的技術和管理類培訓課程,在架構設計和技術管理方面有豐富的經驗和深入的理解,是CSDN部落格專家。著有《Spring回響式微服務》《系統架構設計:程式設計師向架構師轉型之路》《向技術管理者轉型:軟體開發人員跨越行業、技術、管理的轉型思維與實踐》《微服務設計原理與架構》《微服務架構實戰》等作品。

相關詞條

熱門詞條

聯絡我們