天天看點

響應式流Spring1. Spring WebFlux 2小時快速入門2. 響應式Spring的道法術器

官方參考文檔位址:http://projectreactor.io/docs/core/release/reference/

中文翻譯文檔位址:http://htmlpreview.github.io/?https://github.com/get-set/reactor-core/blob/master-zh/src/docs/index.html

中文翻譯源碼位址:https://github.com/get-set/reactor-core/tree/master-zh/src/docs/asciidoc

轉:http://blog.51cto.com/liukang/2090163

1. Spring WebFlux 2小時快速入門

Spring 5 之使用Spring WebFlux開發響應式應用。

  1. lambda與函數式(15min)
  2. Reactor 3 響應式程式設計庫(60min)
  3. Spring Webflux和Spring Data Reactive開發響應式應用(45min)

通過以上内容相信可以對Spring 5.0 推出的響應式開發有了初步的體會。如果希望有更加深入的了解,歡迎閱讀下邊的系列文章——

2. 響應式Spring的道法術器

這個系列的文章是為了記錄下自己學習Spring響應式程式設計的所得,也希望能夠幫助到更多的朋友。

原諒我标題黨了,希望能從道、法、術、器四個層面盡量全面地學習和介紹關于Spring響應式程式設計的方方面面。

【道】響應式程式設計的概念、原則、特性與方法

  • 1.1 什麼是響應式程式設計:響應式程式設計=資料流+變化傳遞+聲明式;
  • 1.2 響應式流:響應式流的異步非阻塞和回壓(也有翻譯為“背壓”、“負壓”的)特性,分析與多線程并發方案以及基于回調和CompletableFuture的異步開發方式的不同;
  • 1.3 Hello,reactive world,通過執行個體學習用lambda、Reactor 3、Spring Webflux和Spring Data Reactive開發響應式應用的方法和技巧;
  • 1.4 異步非阻塞有多給力,使用gatling對基于Spring Webmvc和Spring Webflux的Web服務端應用進行負載測試,通過Spring WebClient與RestTemplate的性能對比并結合Netflix的案例了解異步Http用戶端的性能提升,然後使用YCSB對MongoDB的同步和異步驅動進行負載測試,通過測試資料分析異步非阻塞的性能優勢;
  • 1.5 響應式系統,介紹響應式宣言,以及響應式程式設計和響應式系統的差別與聯系。

【法】系統介紹響應式程式設計庫的使用與原理

  • 2.1 照虎畫貓深入了解響應式流規範,介紹響應式流規範及響應式開發核心接口,通過自己動手編寫響應式開發庫,了解内部實作機制,是了解本章後續内容的基礎,重要。
  • 2.2 自定義資料流,在Reactor 3中如何通過

    generate

    create

    等方法生成自定義的資料流,是指令式程式設計與響應式程式設計的橋梁。然後通過實作一個docker事件推送的例子進一步熟悉它。
  • 2.3 Reactor的backpressure(背壓/回壓)政策,介紹Reactor3中的幾種回壓政策,及其在生成和消費資料流的時候如何起作用。
  • 2.4 Reactor排程器與線程模型,從原理角度分析Reactor 3的排程器以及

    subscribeOn

    publishOn

    的作用原理,最後介紹用于并行執行的

    ParallelFlux

  • 2.5 Reactor 3 operators,Reactor 3提供了豐富的操作符,介紹如何選擇合适的操作符,以及如何進行操作符的打包。
  • 2.6 測試,介紹使用

    StepVerifier

    PublisherProbe

    TestPublisher

    三種工具進行自動化測試的方法。
  • 2.7 調試,介紹基于hook的全局調試模式、基于

    checkpoint()

    的局部調試模式的調試方法,以及之前用過的

    log()

    操作符觀察内部執行情況。
  • 2.8 Hot vs Cold,介紹使用Reactor 3 操作“熱序列”的方法。
  • 2.9 Processor,介紹Reactor 3内置的幾種Processor的實作。
  • 2.10 操作符熔合,介紹操作符熔合的優化思路。

【術】響應式關鍵技術與底層機制

預告:看網上關于Actor/Reactor/Preactor模型、異步I/O的内容很詳細也很棒,我就不贅述了,初步考慮直接通過模仿reactor-netty項目,從零編寫一套基于Netty的響應式伺服器和用戶端,相信無論是對于我自己還是對于關注本系列文章的朋友來說,都是一次不錯的提升Netty和響應式程式設計的嘗試,也是為下一章做鋪墊。這樣一套基于Netty的響應式伺服器和用戶端工具是Spring WebFlux與Netty之間的适配層,用于将Netty的入站和出站資料進行響應式轉換。

(最近事情有點多,會稍遲些發出來,還是有點難的,光讀源碼就讀了兩周,囧)

【器】執行個體了解Spring各種響應式元件

系統了解Spring中支援響應式的元件,如Spring WebFlux、Spring Data Reactive、Spring Security Reactive,以及使用Spring Boot 2和Spring Cloud建構響應式系統的方法。

(學習中)

系列文章目錄

相關源碼見:https://github.com/get-set/get-reactive。

Reactor3 Reference Guide參考文檔中文版(跟随版本更新):http://blog.csdn.net/get_set/article/details/79471861。

  • (1)什麼是響應式程式設計
  • (2)響應式流
  •  ——附1:多線程并發方案的不爽
  • (3)lambda與函數式
  • (4)Reactor快速上手
  • (5)Spring WebFlux快速上手(五個例子,含響應式資料通路、服務端推送)
  • (6)Spring WebFlux服務端性能測試
  • (7)WebClient與RestTemplate性能對比
  • (8)案例:Netflix對API網關的異步化改造
  • (9)異步Mongo驅動的性能測試
  • (10)響應式宣言、響應式系統、響應式程式設計
  • (11)DIY了解響應式流實作原理
  • (12)自定義資料流(實戰Docker事件推送的REST API)
  • (13)Reactor的backpressure政策
  • (14)Reactor排程器與線程模型
  • (15)Reactor 3 Operators
  •  ——附2:Reactor 3 之選擇合适的操作符
  • (16)Reactor的測試——響應式Spring的道法術器
  • (17)Reactor的調試——響應式Spring的道法術器
  • (18)Hot vs Cold——響應式Spring的道法術器
  • (19)Reactor Processors——響應式Spring的道法術器
  • (20)操作符熔合——響應式Spring的道法術器