reactor-core/src/main/java/reactor/core/publisher/Flux.java
public static <I> Flux<I> merge(Iterable<? extends Publisher<? extends I>> sources) {
		return merge(fromIterable(sources));
	}
public static <I> Flux<I> merge(Iterable<? extends Publisher<? extends I>> sources) {
		return merge(fromIterable(sources));
	}
public static < I > Flux < I > merge ( Iterable < ? extends Publisher < ? extends I > > sources ) { return merge ( fromIterable ( sources ) ) ; }
Merge data from {@link Publisher} sequences contained in an {@link Iterable}
into an interleaved merged sequence. Unlike {@link #concat(Publisher) concat}, inner
sources are subscribed to eagerly.
A new {@link Iterator} will be created for each subscriber.
<p>
<img class="marble" src="doc-files/marbles/mergeFixedSources.svg" alt="">
<p>
Note that merge is tailored to work with asynchronous sources or finite sources. When dealing with
an infinite source that doesn't already publish on a dedicated Scheduler, you must isolate that source
in its own Scheduler, as merge would otherwise attempt to drain it before subscribing to
another source.

@param sources the {@link Iterable} of sources to merge (will be lazily iterated on subscribe)
@param <I> The source type of the data sequence

@return a merged {@link Flux}
Merge data from { @link Publisher } sequences contained in an { @link Iterable } into an interleaved merged sequence . Unlike { @link #concat ( Publisher ) concat } inner sources are subscribed to eagerly . A new { @link Iterator } will be created for each subscriber . <p > <img class = marble src = doc - files / marbles / mergeFixedSources . svg alt = > <p > Note that merge is tailored to work with asynchronous sources or finite sources . When dealing with an infinite source that doesn t already publish on a dedicated Scheduler you must isolate that source in its own Scheduler as merge would otherwise attempt to drain it before subscribing to another source .