2017-02-03 14 views
1

Я бегу сельдерей и кролик MQ Gunicorn в Докер.Как Celery открывает новые узлы?

Мой вопрос заключается в следующем: я понимаю, что сельдерей предназначен для распределенной обработки. То, что я вообще не вижу в документах, предполагает, что у меня есть несколько машин/узлов в одной локальной сети, как они обнаруживают друг друга? Играет ли RabbitMQ роль? Есть ли случаи, когда сельдерей каким-то образом обнаруживает друг друга? Есть ли список подходящих хостов? Если да, то как мне его редактировать?

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

EDIT: После первого ответа я начал работать над этим. Кажется, мне нужна какая-то сетевая настройка, или рой или мосты и т. Д. Я должен уточнить, что я использую docker-compose, чтобы поднять решение, и я вижу, что обычная настройка рой не работает, и у меня есть использовать что-то немного другое, если я иду по этому маршруту.

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

Надеюсь, что я ясно это сказал, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Спасибо!

ответ

0

Я понимаю, что сельдерей предназначен для распределенной обработки. Что такое Я вообще не вижу никаких документов, предполагая, что у меня есть несколько машин/узлов в той же локальной сети, как они обнаруживают друг друга? RabbitMQ играет роль? Есть ли случаи, когда сельдерей каким-то образом обнаруживает друг друга? Есть ли список подходящих хостов? Если да, то как мне его редактировать?

Сельдерей - это распределенная задача, работающая с использованием брокерской системы сообщений, такой как RabbitMQ.

Что, в сущности, все работники сельдерея соединяют общую очередь, такую ​​как RabbitMQ. Мастер (ы) отправляет работу, нажимая ее в очередь. Рабочие, которые также подключены к очереди, вытаскивают работу из очереди и затем пытаются ее выполнить. Как только он будет завершен (успешно или иначе), он вернет результаты обратно в очередь, которые могут запросить мастера (ов).

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

Немного более подробное объяснение от другого ответа SO.

Link to the architecture with a diagram.

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

Нет, вам не нужен guicorn, работающий на всех узлах, только тот, который вы используете для обслуживания HTTP-запросов через python. Работникам сельдерея не нужен гуйкорн. Рабочий параметр в guicorn относится к числу рабочих в пуле прослушивателей HTTP. Это отдельный, независимый и не имеющий отношения к набору работников, который использует сельдерей.

+0

Hi @ffledgling, спасибо за ответ, я знаю намного больше, чем раньше. Однако у меня есть несколько вопросов по разъяснению. Где вы сказали: «вам не нужно добавлять список хостов, они« автоматически обнаруживают »работу. Вам просто нужно запустить их и убедиться, что они могут разговаривать с очередью». Как мне это сделать? Это основная суть моего первоначального поста. Я предполагаю, что где-то я рассказываю экземпляры сельдерея, какой файл? Есть ли какой-то конкретный формат, которому я должен следовать? Я проверил ссылку, которую вы опубликовали, и она информативна, но не содержит фактических конфигурационных примеров. Еще раз спасибо! – Bruce

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

  • Нет связанных вопросов^_^