Spring 響應式編程 (Hands-On Reactive Programming in Spring 5: Build cloud-ready, reactive systems with Spring 5 and Project Reactor)

[烏克蘭]奧萊·多庫卡(Oleh Dokuka) 伊戈爾·洛茲恩斯基(Igor Lozynskyi )

  • Spring 響應式編程 (Hands-On Reactive Programming in Spring 5: Build cloud-ready, reactive systems with Spring 5 and Project Reactor)-preview-1
  • Spring 響應式編程 (Hands-On Reactive Programming in Spring 5: Build cloud-ready, reactive systems with Spring 5 and Project Reactor)-preview-2
Spring 響應式編程 (Hands-On Reactive Programming in Spring 5: Build cloud-ready, reactive systems with Spring 5 and Project Reactor)-preview-1

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

商品描述

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

作者簡介

Oleh Dokuka

*深軟件工程師,Pivotal公司Java Champion,作為Project Reactor和Spring框架的重要貢獻者,
熟悉其內部機制,並提倡使用Project Reactor進行日常響應式編程。
他經常在軟件開發中實際應用Spring框架和Project Reactor,
非常了解使用這些技術構建響應式系統的方法。


Igor Lozynskyi

*深Java開發人員,擁有約10年的Java平台經驗,主要致力於開發可靠、
可伸縮且速度極快的系統,熱衷於打理生活和軟件開發中總在變化的項目。

目錄大綱

目錄:  
第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平台Knative369  
10.3.5對成功部署應用程序的建議369  
10.4小結370