node.js с дочерними процессами в докере - PullRequest
0 голосов
/ 28 мая 2018

У меня есть веб-приложение node.js, которое работает на моем сервере amazon aws с использованием nginx и pm2.Приложение обрабатывает файлы для пользователя, что выполняется с помощью системы заданий и дочерних процессов.Короче говоря, когда приложение запускается через pm2, я создаю дочерний процесс для каждого ядра процессора сервера.Каждый дочерний процесс (работник) затем выполняет задания из очереди заданий.

Мой вопрос, могу ли я повторить это в докере или мне нужно как-то изменить его.У меня было предположение, что мне нужно будет создать контейнер для базы данных, один контейнер для приложения, а затем несколько рабочих контейнеров, чтобы выполнить обработку, чтобы в случае сбоя я просто раскручивал другого работника.

Я проводил исследования в Интернете, в том числе курс удэми, чтобы разобраться в этом, но я не нашел ни одного примера или того, что можно было бы связать с моей проблемой / вопросом.

Любая помощь, материалы для чтения или предложения будут с благодарностью.

1 Ответ

0 голосов
/ 29 мая 2018

Контейнеры работают с тем же уровнем производительности, что и ОС хоста.Производительность процесса не пострадала.Я создал технический документ с Docker и HPE для этого .

. Вы не будете использовать pm2 или nodemon, которые предназначены для запуска нескольких процессов приложения вашего узла и их перезапуска в случае сбоя.Теперь это работа Docker.

Если в Swarm вы просто увеличите количество реплик своей службы, чтобы они были похожи на количество процессоров / потоков, которые вы хотите запускать одновременно вswarm.

Я не упоминаю нодmonmon / pm2 для Swarm в моих node-docker-good-defaults , так что я буду в качестве вопроса для его обновления.

...