2010-01-17 7 views
2

Знаете, для балансировки нагрузки и т. Д.? У меня есть VPS, и вы понимаете, что можете развернуть и запустить несколько экземпляров и предоставить им общий доступ к хранилищу сеансов базы данных и memcached и тому подобное. То, что я не смог найти, - это какая-либо информация о том, как это делается?Как запустить несколько экземпляров моего приложения Rails?

Мне интересно несколько экземпляров (два или три) на одном VPS, а также в нескольких VPS.

ТИА,

NJ

+1

Не вопрос программирования. Это должно быть на сервере. –

+1

Это вопрос программирования. Думаю, вы не использовали Distributed Systems в коллаже. – rook

ответ

5

Это действительно зависит от того, какой архитектуры вы используете. Если вы используете mongrel, проверьте mongrel_cluster. Если вы используете fastcgi или пассажир, это уже сделано для вас. Другим способом было бы изучить Heroku, который позволяет вам просто менять ползунок для большего количества экземпляров. Проекты 45k теперь размещены на Heroku, поэтому, если вы серьезно относитесь к этому, я думаю, что вы обязаны сделать это сами, чтобы проверить это.

0

Облачные вычисления интересны. Amazon AWS позволяет загружать несколько экземпляров образа диска, позволяя создавать пул работников. Вы можете загружать и выключать машины, используя вызов API, и вы платите только за их использование.

Получение этих машин для совместной работы сложнее. Существуют распределенные рубиновые проекты, но у них нет важных функций. Quartz - отличный проект, который я использовал для распределенных вычислений. Это очень мощная библиотека, которая упрощает координацию задач в одной системе или большом кластере. Разница между ними сводится к одному configuration file. Однако он написан на Java. Java - хороший выбор для проекта, потому что у него лучший менеджер памяти, чем рубин. Вы когда-нибудь пробовали запустить рубиновый скрипт в течение длительного времени? Его использование памяти, как правило, выходит из-под контроля через несколько дней.

Вкратце написать простые задания на Java, используя Quartz, которые выполняют ваш код ruby.

2

Отличная книга для этого является Deploying Rails Applications. Это немного устарело, но дает вам полный объем и основу админской стороны рельсов. Он использует кланы монгреля, которые будут выполнять то, что вы хотите.

Как сказал Чак выше, пассажир - отличный вариант, и я думаю, что он стал более популярным, чем Mongrel. Но книга даст вам хорошую основу для работы. Электронная книга - всего 22 доллара, но я сам купил бумажную версию.