Reactor學習筆記

1 Reactor簡介

Reactor是一個用於JVM的徹底非阻塞的響應式編程框架,具有高效的需求管理能力。與Java8函數式API直接集成(CompletableFuture,Stream以及Duration)。它提供了異步序列API Flux(用於N個元素)和Mono(用於0|1個元素)。適用於微服務架構,而且完整支持響應式編解碼。html

2 響應式編程

Reactor是響應式編程範式的實現。
響應式編程一般做爲面向對象編程中的觀察者模式的一種擴展。
Reactor主要是彌補一些經典的JVM異步方式所帶來的不足,此外還關注幾個方面:react

  • 可編排性以及可讀性
  • 使用豐富的操做符阿里處理形如的數據
  • 在訂閱(subscribe)以前什麼都不會發生
  • 背壓(backpressure)具體來講就是消費者可以反向告知生產者生產內容的速度的能力
  • 高層次的抽象,從而達到併發無關的效果

3 Reactor核心特性

3.1 Flux,包含0-N個元素的異步序列

clipboard.png
Flux<T>是一個可以發出0到N個元素的標準的Publisher<T>,它會被一個」error」或者「completion」信號終止,所以,一個flux的可能結果是一個value、completion或error。git

3.2 Mono,異步的0-1結果

clipboard.png
Mono<T>是一種特殊的Publisher<T>,它最多發出一個元素,而後終止於一個onComplete信號或一個onError信號。
它只適用其中一部分可用於Flux的操做。好比,(兩個Mono的)結合類操做能夠忽略其中之一而發出另外一個Mono,也能夠將兩個都發出,對於後一種狀況會切換爲一個Flux。github

本文基於:https://htmlpreview.github.io...://github.com/get-set/reactor-core/blob/master-zh/src/docs/index.html#flux
推薦寫的比較好的一篇文章:https://www.jianshu.com/p/7ee...編程

相關文章
相關標籤/搜索