Шина данных с Java Flux API

Я изучал Java Flux API, когда в некоторых руководствах заметил, что вы можете подписаться только на одного издателя. Тем не менее, я вижу вариант использования, когда полезно иметь несколько издателей для одной подписки: своего рода шина данных/сообщений.

Единственное решение, которое я нашел, — инкапсулировать массив подписчиков и 1 издателя внутри шины.

Мой вопрос в том, какой правильный подход с реактивной точки зрения к этой проблеме?


Я заинтересован в решении этой проблемы путем реализации собственных издателей/подписчиков и т. д. (используя Java 9 java.util.concurrent.Flow API). Этот проект предназначен для учебных целей, а не для производства.


person taigi100    schedule 06.09.2018    source источник
comment
Кажется, вы хотите объединить потоки. Есть множество операторов, позволяющих это сделать.   -  person a better oliver    schedule 08.09.2018
comment
@abetteroliver Я хочу объединить несколько издателей в одно. Какие операторы конкретно позволяют это сделать? используя интерфейсы java.util.concurrent.Flow. Спасибо!   -  person Ariel Mirra    schedule 30.05.2021


Ответы (1)


Вы можете использовать Spring Reactor, реализацию Java Publishers API. У него есть такие операторы, как concat(), merge() и т. д., для объединения потоков для данного подписчика. https://projectreactor.io/docs/core/release/api/

person Vikram Rawat    schedule 09.09.2018