Масштабирование node.js express приложения с использованием docker роя - PullRequest
1 голос
/ 17 февраля 2020

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

Проблема, с которой я сталкиваюсь:

  1. ЗАПРОС ЗАПРОСА ОТ UI
  2. Предварительная проверка OPTIONS выполняется - получает код состояния 204 из моего бэкэнда
  3. запрос зависает, а POST не отправляется.

Что я пробовал:

  1. пытался выяснить, связано ли это с чем-то CORS, но я так не думаю, потому что мне удалось заставить его работать на одном сервере, который также отличается от внешнего интерфейса.

  2. попытался запустить приложение express только на рабочем узле (новый узел, который я добавил в кластер), и ему удалось получить к нему запрос post.

  3. попытался запустить приложение только на главном узле - оно работал.

оба комплекта rvers находятся за балансировщиком нагрузки, который я создал (не знаю, если это проблема или нет, когда дело доходит до express), оба сервера работают на экземплярах EC2 на aws base image - node: 8-alpine express version : "express": "^ 4.17.1",

1 Ответ

0 голосов
/ 25 февраля 2020

Через некоторое время я обнаружил, что проблема заключалась в том, что я не запустил Swarm на общедоступном c IP обоих экземпляров ec2.

убедитесь, что при инициализации роя вы слушаете на publi c ip сервера.

docker swarm init --advertise-addr <public ip>

то же самое для присоединения к рою.

...