Reactor - CCH0124/spring-sandbox GitHub Wiki

  • non-blocking
  • Flux for [N] elements
    • Stream of message
    • Backpressure
  • Mono for [0|1] elements
    • No Stream
    • No Backpressure
    • A light weight publisher

projectreactor | docs

有三個元素,會經過中間的 operator 作一些操作,並得到新的流。

在 Reactor 中有 publisher<T> 的介面。其,提供兩種不同的實作 Mono<T>Flux<T>

Mono

               o
Mono --------------------> subscriber
 |                             |
 |                             |
 ----------subscription<------- request=3
Method Usage
just
empty
error
fromSupplier
fromCallable
fromFuture
fromRunnable
defer

Flux

Flux.create and FluxSink

Flux.generate and SynchronousSink

FluxSink and SynchronousSink diff

baeldung | flux-create-vs-flux-generate

Flux.create Flux.generate
Accepts a Consumer<FluxSink<T>> Accepts a Consumer<SynchronousSink<T>>
Consumer is invoked only once Consumer is invoked again and again
Consumer can emit 0..N elements immediateely without worring about downstream demand. Consumer can emit only one element. Dpwnstream demand is respected!
Thread-safe N/A

baeldung | flux-create-generate#flux-create-vs-flux-generate

Method Usage
filter
map
take/takeWhile/takeUntil
delayElements
do Hooks
onErrorReturn/onErrorResume/onErrorContinue
timeout
defaultIfEmpty/switchIfEmpty
handle
transform
⚠️ **GitHub.com Fallback** ⚠️