Развертывание пользовательских модулей spring-xd с помощью Redis

Я работаю над spring xd и gemfire xd, где у меня есть требования, я собираю данные с одного из узлов (локальная файловая система), где запущен xd-admin. Я хочу собрать этот файл и отправить на обработку. Ниже приведено мое определение потока.

исходный файл /tmp/xd/input --ref true | процессор (сборщик сообщений) | процессор ((расчетное уравнение) | приемник (gemfire xd)

У меня есть 3 узла spring xd и кластер gemfire xd. работает первый узел (xd-admin.xd-container) и 2 и 3 узла xd-контейнеров. контейнеры правильно зарегистрированы в xd-admin. Я настроил один экземпляр Redis.

Мое требование: я хочу собрать свои данные из файла и отправить для процесса и сохранить в gemfire xd.

messageCollector --> собрать все сообщения как HashMap и отправить следующему процессору Equation calc, здесь все записи будут проходить через уравнения и вычисляться, а результаты будут отправлены в следующую вставку приемника (gemfire xd).

Это я тестировал в env с одним узлом и работал хорошо. Теперь я перешел к распределенной среде, как описано выше.

Как мне создавать модули в распределенной среде. Нужно ли мне перемещать все мои модули на все доступные узлы.

or

исходный модуль будет там только там, где фактический файл и остальные модули идут во все доступные контейнеры.

здесь, в модуле калькулятора уравнений, я сохраняю последовательность для каждой записи в файле. и такая же последовательность должна поддерживаться в gemgire xd (sink) как есть.

Поскольку теперь он находится в среде с одним узлом, он работает хорошо, поскольку все обрабатывается одним узлом.

Теперь я перешел к распределенной среде, где у меня нет контейнеров, как описано выше. Как сохранить мою последовательность до вставки.

Пожалуйста, помогите мне с развертыванием модулей в распределенной среде.

Спасибо, -Суйодха


person Madhu Mohan Kommu    schedule 28.07.2014    source источник


Ответы (1)


Используйте criteria в манифесте развертывания, чтобы направить исходный файл к определенному узлу. Используйте count для развертывания ваших процессоров на нескольких узлах.

Однако после этого вы не сможете поддерживать последовательность. Если у вас есть только 1 экземпляр второго процессора, все будет проходить через него, но последовательность может не совпадать с исходной последовательностью из файла(ов).

person Gary Russell    schedule 28.07.2014
comment
Гэри, я настрою это и сообщу тебе о результатах. Действительно очень полезная информация Гэри. Мы изучаем все компоненты ресеквенсера Spring XD(Integration), агрегатора, pub-sub. Теперь мы перешли к распределенной среде, где соблюдение последовательности является ключевым требованием. Я сообщу вам о результатах. Большое спасибо, Гэри. - person Madhu Mohan Kommu; 29.07.2014