У меня есть несколько приложений API Node.js. Все они следуют очень похожей модели.Несколько обработчиков событий в одном процессе? Или распределить между процессами
Существует один HTTP-сервер (экспресс), который слушает запросы и отправляет запросы на вставку.
Существует еще один обработчик событий, который слушает эту очередь (в настоящее время он находится в mongodb, но может быть redis или что-то еще) и обрабатывает элементы, если они найдены, и повторяет попытку через определенный промежуток времени.
Поскольку мои серверы являются многоядерными экземплярами, у меня есть разветвленные дочерние процессы для распределения нагрузки. Но в настоящее время каждый из этих процессов имеет как эти обработчики событий (HTTP, так и обработчик очереди).
Какой подход лучше? Разделение обработчиков на разные процессы или наличие обоих обработчиков в каждом процессе (моя текущая настройка)? Примерно 90% моих вызовов API приводят к добавлению элемента в очередь, который позже будет обработан обработчиком очереди.
Я первоначально разделил их оба на два разных приложения-узла, но я объединил их в один, чтобы упростить управление процессами и приложениями на сервере.
Спасибо за 12-факторную ссылку. Прочитал бы это. Я не думаю, что мне нужно полагаться на Procfiles, поскольку у меня есть собственная настройка сервера. Я бы предпочел полагаться на свои собственные сценарии инициализации, если мне нужно управлять ими как отдельными приложениями. – Munim