2014-12-12 2 views
7

У меня есть менеджер задач по сельдерину, чтобы хрустнуть некоторые цифры для аналитики компании.Autoscale Piedon Celery с Amazon EC2

Менеджер задач и сотрудники размещены на сервере Amazon EC2 Linux.

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

Службы, о которых я знаю, являются услугами Amazon Autoscale и Amazon Load balancing, которые, похоже, именно то, что я хочу использовать, однако я не уверен, что лучший способ настроить сельдерей.

I думаю, что я должен иметь «мастера» сельдерея, который собирает все задачи и ряд рабочих сельдерея, которые их выполняют. По мере увеличения числа задач я хочу добавить больше работников. Как работает автомасштабирование (принимая AMI сервера сельдерея), я думаю, что в настоящее время я клонирую Мастер, а также рабочих, которые, похоже, не то, что я хочу делать.

Как организовать это для достижения моей конечной цели, которая представляет собой гибкое управление задачами автомасштабирования с использованием Celery для управления задачами и веб-службой Amazon для размещения компьютеров.

Как можно подробнее в любых ответах (или ссылках на учебные пособия!) Было бы очень полезно, поскольку большинство учебных пособий или советов, похоже, предполагают большие объемы знаний, которых у меня сейчас нет!

ответ

4

Для этого вам не нужна архитектура мастера-работника. Если я правильно понимаю ваш вопрос, вы хотите иметь возможность масштабирования на основе размера очереди. Я бы сказал, это будет легче, если у вас есть следующие шаги

  1. Настройка elasticache/sqs для брокера (так как вы в AWS)
  2. Для пользовательского масштабирования - A periodic task, который проверяет размеры очередей, используя что-то вроде this ИЛИ добавьте автомасштабирование amazon, чтобы просто добавлять/удалять машины, когда загрузка процессора высока (при условии, что это достаточно хороший показатель нагрузки). Кроме того, начните работу с --autoscale, чтобы обеспечить правильное отражение использования ЦП.