Можно ли определить несколько ответвлений в одном потоке Spring XD

Для Spring XD 1.3.1, с использованием транспорта Rabbit MQ, распространяется.

Нужны пояснения о том, как работают ответвители Spring XD для показателей. Мне нужно знать, можно ли использовать один поток несколько раз, чтобы каждое сообщение через основной поток было отправлено на каждый из активных определенных ответвлений.

Сценарий представляет собой поток с источником-кроликом, который обрабатывается перед доставкой в ​​приемник, например mongo. Этот поток переходит в альтернативный приемник. Мы также хотим создать несколько метрик в этом потоке, включая агрегированный счетчик и пару счетчиков значений полей, которые будут хранить метрики для общего количества сообщений и сообщений по типу, просматривая разные поля в исходном сообщении (которые находятся в JSON).

В документации неясно, получает ли каждое нажатие копию сообщения.

При тестировании первое нажатие получает все сообщения, но ни одно из значений поля или совокупных счетчиков, похоже, не получает данные.


person Joseph Paulchell    schedule 31.05.2016    source источник


Ответы (1)


Да, поток может иметь несколько ответвлений. Вот пример. Внутри XD использует шину сообщений для привязать к ресурсу pub-sub (зависит от транспорта). Например, при использовании транспорта Rabbit MQ обмен Fanout будет создано для каждой потенциальной точки перехода в потоке. Привязка очереди к этому обмену выполняется лениво, то есть когда создается поток ответвлений. Вы должны увидеть соответствующие обмены и привязки очереди для каждого нажатия в консоли администратора Rabbit.

Я не уверен, почему вы не видите сообщения во всех ответах. Имейте в виду, что ответвители всегда должны быть развернуты (после создания целевого потока, но до развертывания целевого потока), любые данные в потоке до развертывания ответвления не будут потребляться ответвлением.

person dturanski    schedule 31.05.2016