Я пытаюсь создать структуру конвейера поверх Reactor.
На каждом этапе (не считая первого и последнего) у нас есть задачи, которые преобразуют объект (то есть строку по ее длине или URL-адрес ее HTML-содержимого и т. Д.). Вот пример:
Вы можете видеть, что средний уровень имеет 3 задачи, и каждая задача преобразует объект X в объект Y (кстати, это всегда полностью связанные слои)
Мой вопрос / дилемма: Моя первая мысль заключалась в том, что все, что мне нужно, это Flux.merge()
, а затем подключить его к каждому подписчику. Например:
Flux<X> source = Flux.merge(x1Flux, x2Flux)
source.subscribe(y1Subscriber)
source.subscribe(y2Subscriber)
Другой вариант - установить процессор (TopicProcessor?), Который будет действовать как промежуточное ПО (как в шаблоне pub-sub).
Мне не хватает понимания, какое решение лучше всего подходит для моей проблемы. Логически это одно и то же, но каковы практические последствия каждой архитектуры?
Спасибо!