2013-03-21 2 views
4

У меня есть все, что я хочу делать с django-celery, работающим на моей машине разработки локально. Я запускаю Django, djcelery, cellery и брокер (Amazon SQS). Он отправляет задания и просто работает.Django Сельдерей в производстве

Я могу установить все это, как я сделал локально (то есть все на одном ), но что происходит, когда я хочу распространять задачи на другие задачи ? Является ли это копией текущей машины (с Django, djcelery и celery) и все соединения с тем же SQS? Как это работает? Если они все свяжутся с одним и тем же брокером, они просто «знают»? или это не работает так?

Можно ли начинать с всего на одной машине, как я делал в разработке (я буду демонтировать сельдерей в производстве)?

+1

Вы можете начать с «все» на одной машине, пока она работает для вас, в зависимости от того, какой сайт вам нужно разместить, у вас может быть план масштабирования, но для начала все вместе идеально поместиться. У меня есть все это, и я использую Linode, поэтому я могу масштабировать экземпляр, если мне нужно больше ресурсов. – PepperoniPizza

ответ

2

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

Сельдерей может масштабироваться как по горизонтали, так и по вертикали. Вам нужен сельдерей, чтобы быстрее обрабатывать больше рабочих мест? Дайте вашему компьютеру больше ресурсов, увеличьте количество работников, то есть вертикальное масштабирование, или загрузите более мелкие машины с горизонтальным масштабированием. В любом случае ваши работники сельдерея все потребляют одну и ту же очередь на SQS. Это зависит от того, что делают ваши сельдерейские задания, как повлияет остальная часть вашей инфраструктуры. Если они пишут в БД, тем больше у вас рабочих, чем выше нагрузка на вашу БД, поэтому вам нужно будет также взглянуть на масштабирование.

ОК, чтобы начать с «всего» на одном машинном подходе. По мере того, как спрос на ваше приложение растет, вы можете начать смотреть на перемещение работников сельдерея на большее количество машин или предоставить все на одном сервере больше ресурсов.

Помогает ли это? :)

+0

Я действительно помогаю, спасибо, это дает мне отправную точку. Одна вещь, я заметил, что когда я загрузил две машины разработки (одно приложение), они оба устарели, чтобы потреблять задания SQS (как вы описали). отлично, но как он узнает? Я имею в виду, если бы у меня была вторичная машина, мне бы хотелось, чтобы она обрабатывала только набор задач и не запускала мое полное приложение. Это было похоже на волшебство, но я хочу знать, как он знает, когда появился второй сервер, как он знал, чтобы обрабатывать одни и те же задачи? Надеюсь, это имеет смысл. – Prometheus

+1

Сервер очередей ничего не знает о сельдерее или о вашем приложении. Это просто магазин, где вы можете стоять в очереди. Когда самец сельдерея будет проверять очередь на задание, если он будет обрабатываться, как только он будет выполнен, он снова проверит Q на другое задание и продолжит проверку до его появления. Это будет x количество работников сельдерея, которых вы проверяете в очереди. – krak3n

Смежные вопросы