Может кто-нибудь объяснить "heroku ps: scale web = 1"

Я ищу прямое объяснение того, что все происходит, когда я ввожу следующую команду:

heroku ps:scale web=1 

Что Heroku делает за кулисами для развертывания приложения? Я спрашиваю, потому что я только сейчас использую Heroku для развертывания и хотел бы лучше понять процесс. Спасибо!

Ответ 1

Эта команда не развертывает приложение. Он запускает его после развертывания.

Когда вы развертываете свое приложение, герой создает "slug". Запускаемая версия zip-версии вашего приложения, которая затем сохраняется. Затем вы можете запустить "dynos", которые берут ваш текущий slug и запускают его на одном из серверов heroku.

Запуск heroku ps:scale web=1 будет масштабировать ваше приложение до одного работающего dyno, в основном это означает, что у вас есть один сервер, на котором запущено ваше приложение.

Если вы снова разместите свое приложение, новый slug будет создан и сохранен, а ваши текущие динамики будут уничтожены, чтобы их заменили новыми с новой версией вашего кода.

Ответ 3

Всякий раз, когда вы недавно развертываете свое приложение в heroku, он запускает один dyno, где приложение запускается. Просто рассмотрите это как сервер. Этот сервер не может обрабатывать большое количество запросов одновременно.

Таким образом, чтобы обрабатывать все эти массовые запросы, вы можете запускать несколько экземпляров вашего приложения, то есть несколько динодейств, используя запасные ресурсы, доступные в heroku, подобно запуску нескольких экземпляров в tomcat для одного и того же приложения с помощью команды (в пределах ограничений ):

heroku ps:scale web=<number_dynos_u_want>

Heroku выполняет балансировку нагрузки для вас. Таким образом, вы можете горизонтально масштабировать свое приложение, чтобы обрабатывать больше нагрузки. Надеюсь, это очистит эту концепцию!