2015-08-14 7 views
0

Я до сих пор довольно новичок в NodeJS и хочу знать, рассматриваю ли я это неправильно.Передача данных между несколькими серверами NodeJS

Справочная информация: Я делаю приложение, которое работает один раз в неделю, создает отчет, а затем отправляет его по электронной почте в список получателей. Моя первоначальная причина использования узла заключалась в том, что у меня уже есть уже установленный фронт-терминал с угловым, и я хотел бы использовать код для упрощения обслуживания. Моя основная идея заключалась в том, чтобы на нашем сервере параллельно работали приложения с отдельными узлами 4+.

Первое приложение будет использовать узел-cron для запуска каждое воскресенье. Это проверит базу данных для всех запланированных задач и извлечет сохраненные параметры для запущенных отчетов.

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

Фактическое построение pdf будет несколько интенсивным, поэтому это будет кластер из n приложений, которые будут извлекать и запускать отдельные отчеты из очереди.

Когда вы закончите делать PDF, они перейдут в последнее приложение электронной почты, которое отправит файл.

Моей главной проблемой является связь между приложениями. На данный момент я настраиваю 3 нижних уровня (т.е. все, кроме планировщика) на отдельных портах с экспресс-памятью, и при необходимости открывая HTTP-запросы к ним. Есть ли лучший способ справиться с этим? Будет ли базовая «сеть» работать лучше, чем пакет «http»? Является ли Express даже необходимым для чего-то подобного, или мне лучше работать с базовым сервером http/net? Пока единственное реальное использование, которое я сделал в Express, - это специально прослушать путь для запросов на отправку и разобрать входящий json. Меня спросили здесь, потому что в журналах отслеживания пока я так часто вижу, что HTTP-запрос сбрасывается, что не влияет на данные, полученные в дочернем процессе, но мне все же нравится избегать ошибок в моем кодировании.

ответ

1

Я думаю, что его вид расцепления может использовать какое-то с учетом состояния очереди приоритетов с функциями, как повторить попытку в случае неудачи, кластеризация, ...

Я использовал Kue.js в прошлом с большим Sucess, это redis поддерживается и имеет хорошую документацию и интерфейс http://automattic.github.io/kue/

+2

Kue - хорошее решение, но если вы хотите что-то более прочное, взгляните на: https://www.rabbitmq.com –

Смежные вопросы