Назад | Перейти на главную страницу

Отдельный сервер для спасателей

Я пытаюсь сегментировать несколько серверов для проекта Rails, и отчасти это развлекает идея изолировать Resque worker в их собственном ящике. У меня уже есть Redis, но распространено ли размещать Resque worker в другом месте? Их нужно привязать к самому приложению?

Если это возможно, существуют ли какие-либо наиболее часто упоминаемые передовые методы или отзывы по этому вопросу? Если нет, мне лучше просто добавить больше ОЗУ на серверы приложений, на которых работают Resque worker?

Я планирую использовать бригадира, чтобы контролировать все это и создавать новые рабочие места.

Я пытаюсь сегментировать несколько серверов для проекта Rails, и отчасти это развлекает идея изолировать Resque worker в их собственном ящике. У меня уже есть Redis, но распространено ли размещать Resque worker в другом месте?

Я сделаю это более общим. Распространено ли размещение рабочих, занимающихся обработкой заданий, на разных машинах, отличных от приложения? Абсолютно. Это то, что вы увидите практически в любой архитектуре обработки очереди заданий.

Их нужно привязать к самому приложению?

Нет. Приложение может быть написано для чтения в реальном времени и передачи обновлений в очередь ... и само по себе не может обрабатывать обновления. Они так и должны были сделать ... [задумчивый взгляд вдаль] в облаке. Независимо от того, работает ли это все на одной машине или распространяется по огромной сети, при хорошем дизайне разделения не имеет значения.

Если это возможно, существуют ли какие-либо наиболее часто упоминаемые передовые методы или отзывы по этому вопросу?

Было бы неправильно отвечать на этот вопрос отрицательным ... но я действительно ничего не знаю. У всех разные проблемы при масштабировании. Возможность написать что-то масштабируемое - это всего лишь мера опыта. Вы можете попробовать прочитать истории о том, как другие масштабировали приложения в прошлом, и попытаться извлечь из них уроки, но всеобъемлющего «HOWTO по масштабированию» нет.

Используйте слабую связь и хорошую сегментацию процессов (в смысле блок-схемы), чтобы их можно было разорвать, когда это возможно. Не переусердствуйте.

Если нет, мне лучше просто добавить больше ОЗУ на серверы приложений, на которых работают Resque worker?

Пока вы можете и ничто другое не является узким местом, дерзайте. Масштабирование - это оценка затрат и выгод, как и все остальное. Тем не менее, подумайте, дойдете ли вы до точки, когда вы исчерпаете все, что вы можете поместить в машину, и вдруг станет очень дорого получить платформу, поддерживающую больше памяти. Если вы не думаете, что доберетесь туда, не теряйте из-за этого сон.