reactor-core/src/main/java/reactor/core/publisher/Flux.java
public static <T1, T2, T3, T4, T5> Flux<Tuple5<T1, T2, T3, T4, T5>> zip(Publisher<? extends T1> source1,
			Publisher<? extends T2> source2,
			Publisher<? extends T3> source3,
			Publisher<? extends T4> source4,
			Publisher<? extends T5> source5) {
		return zip(Tuples.fn5(), source1, source2, source3, source4, source5);
	}
public static <T1, T2, T3, T4, T5> Flux<Tuple5<T1, T2, T3, T4, T5>> zip(Publisher<? extends T1> source1,
			Publisher<? extends T2> source2,
			Publisher<? extends T3> source3,
			Publisher<? extends T4> source4,
			Publisher<? extends T5> source5) {
		return zip(Tuples.fn5(), source1, source2, source3, source4, source5);
	}
Zip five sources together, that is to say wait for all the sources to emit one
element and combine these elements once into a {@link Tuple5}.
The operator will continue doing so until any of the sources completes.
Errors will immediately be forwarded.
This "Step-Merge" processing is especially useful in Scatter-Gather scenarios.
<p>
<img class="marble" src="doc-files/marbles/zipFixedSourcesForFlux.svg" alt="">

@param source1 The first upstream {@link Publisher} to subscribe to.
@param source2 The second upstream {@link Publisher} to subscribe to.
@param source3 The third upstream {@link Publisher} to subscribe to.
@param source4 The fourth upstream {@link Publisher} to subscribe to.
@param source5 The fifth upstream {@link Publisher} to subscribe to.
@param <T1> type of the value from source1
@param <T2> type of the value from source2
@param <T3> type of the value from source3
@param <T4> type of the value from source4
@param <T5> type of the value from source5

@return a zipped {@link Flux}