Можно ли ПРИСОЕДИНИТЬСЯ к нескольким потокам с помощью Spring XD?

Мне нужно определить несколько потоков из нескольких источников, а затем объединить их в один. Прочитав всю документацию Spring XD, я не нашел ни одного предопределенного модуля, который может выполнять объединение (например, на основе скользящих окон). Есть ли какое-нибудь решение для этого? Благодарю.


person user3906228    schedule 04.08.2014    source источник


Ответы (1)


Это можно сделать с помощью именованных каналов. . Например, вы можете создать несколько потоков, которые выводят в очередь, и поток «присоединения», который использует очередь в качестве источника:

xd:>stream create s1 --definition "http --port=9000 > queue:join" --deploy
xd:>stream create s2 --definition "http --port=9001 > queue:join" --deploy
xd:>stream create join --definition "queue:join > file" --deploy

Приведенный выше код будет записывать содержимое, отправленное либо на http://somehost.example.com:9000, либо на порт http://somehost.example.com:9001 в файл.

person dturanski    schedule 04.08.2014
comment
Спасибо за ваш ответ, но это похоже на слияние, а не на объединение. Соединение означает сопоставление кортежей из каждого входного потока для создания новых кортежей в выходном потоке. В потоковой передаче мы обычно используем скользящие временные окна для объединения кортежей из нескольких входных потоков и их корреляции. Кажется, что скользящие окна не включены в Spring XD? - person user3906228; 05.08.2014
comment
В целях присоединения вы можете взглянуть на модуль агрегатора (процессор), который сохраняет сообщения и сопоставляет их, используя некоторую подключаемую логику. Вам может быть интересна документация по Spring Integration этого (docs.spring.io/spring-integration/docs/4.1.0.BUILD-SNAPSHOT/) - person ebottard; 05.08.2014
comment
Это не работает как объединение или слияние. В вашем файле просто будут записи, размещенные в обоих источниках. Возможно, модуль агрегатора может быть настроен в соответствии с вашими потребностями. - person Arun Jose; 12.08.2014