Задать вопрос
@andreychumak
junior

Что такое инстанс (экземпляр) приложения?

Не смог найти конкретного объяснения что это означает на практике.
Раньше думал что это, грубо говоря, запущенный сервер (например, puma) или участок в памяти, на котором выполняется код, который обрабатывает запросы.
Тогда почему говорят что запущенно несколько инстансов приложения?
В контексте rails что отвечает за работу с инстансом приложения?
  • Вопрос задан
  • 45606 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
oh_shi
@oh_shi
Вот у вас есть контроллер, который обрабатывает поступающие запросы. На каждый запрос он получает из параметров инстанс переменную, например "@var". Её значение уникально для каждого запроса. Вот так приложение выполняет один и тот же код, но для разных входящих данных.
При дефолтных настройках вашего сервера, запросы встают в очередь и выполняются последовательно. Но если нагрузка начинает превышать возможности такого решения, то можно начать запускать приложение в нескольких инстансах. Это подразумевает выполнение одного и тоже кода в нескольких процессах (воркеры) или даже на разных серверах.
Пример: сервер распределяющий нагрузку (1 сервер) разделяет запросы на несколько инстансов (n серверов), где запущено одно и тоже приложение, но они все обращаются к одной базе (1 сервер).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Инстанс - это англицизм "Instance", в контексте программирования переводится как "экземпляр объекта". К примеру у нас есть окно блокнота - это один экземпляр приложения "блокнот" или один инстанс, запускаем еще один блокнот - получим два экземпляра. Аналогично и с любыми другими объектами.
Ответ написан
b0nn1e
@b0nn1e
Alcohol & Ruby on Rails
Ну применимо к локальной разработке:
rails s -p 3001 -P tmp/pids/server1.pid это первый инстант
rails s -p 3002 -P tmp/pids/server2.pid это второй инстант

Возможно подразумевалось отдельный сервер с приложением - один инстант.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы