IW

ли разместить приложение на одном сервере и поставить в очередь задания на другом сервере?

Возможные примеры:

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

Разместите приложение в Heroku и используйте экземпляр EC2 со службой очередей.

Это возможно?

Спасибо

Ответы на вопрос(2)

Решение Вопроса

Есть несколько требований для его работы:

Серверы должны иметь синхронизированные часы. Обычно это не проблема, если все часовые пояса сервера установлены одинаково.Все серверы должны иметь доступ к одной и той же базе данных.

Для этого у вас есть одно и то же приложение на обоих (или на всех, если их более двух) серверах, и вы начинаете работу на том сервере, на котором вы хотите обрабатывать задания. Любой сервер все еще может ставить в очередь задания, но только те, на которых работают работники, будут фактически обрабатывать их.

Например, у нас есть одинinterface сервер,db сервер и несколькоworker сервера.interface сервер обслуживает приложение через Apache / Passenger, соединяя приложение Rails сdb сервер.workers У меня такое же приложение, хотя Apache не работает, и вы не можете получить доступ к приложению через http. С другой стороны, у них есть работающие delayed_jobs. В общем сценарииinterface сервер ставит в очередь задания вdbиworker серверы обрабатывают их.

Одно слово предостережения: если вы полагаетесь на физические файлы в вашем приложении (вложения, файлы журналов, загруженный XML или что-либо еще), вам, скорее всего, понадобится решение, подобное S3, для хранения этих файлов. Причина этого заключается в том, что отдельные серверы могут не иметь реальных файлов. Примером этого является то, что если ваш пользователь должен загрузить свое изображение профиля на ваш веб-сервер, файлы, скорее всего, будут храниться на этом сервере. Если у вас есть другой сервер для изменения размера изображений профиля, изображение не будет существовать на рабочем сервере.

 donald07 янв. 2011 г., 03:08
Спасибо за ответ. Теперь я понимаю, как это сделать, используя мои собственные серверы. Есть ли способ сделать это с помощью Heroku + Мой сервер?
 mdesantis17 окт. 2012 г., 10:53
что насчетmount? разве это не надежное решение?
 vonconrad07 янв. 2011 г., 03:19
Это действительно зависит от того, разрешает ли Heroku прямой доступ к своим базам данных с внешних серверов. Я недумать они делают, так что ответ будет «нет».
 vonconrad24 окт. 2012 г., 03:20
Основной причиной запуска фоновых заданий на отдельных серверах является сохранение ресурсов процессора и памяти. Использование монтирования на самом деле не делает этого.

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

Таким образом, вы можете ставить в очередь / планировать выполнение заданий, и они будут распараллеливаться между тоннами потоков, охватывающих несколько серверов - и все это без забот об инфраструктуре.

То же самое относится и к базе данных - она ​​должна быть доступна извне.

Полное раскрытие: я помог построитьIW.

Ваш ответ на вопрос