Навіщо використовувати Селеру замість RabbitMQ?


80

З мого розуміння, Celery - це розподілена черга завдань, що означає єдине, що вона повинна зробити, це відправка завдань / завдань на інші сервери та повернення результату. RabbitMQ - це черга повідомлень, і не більше того. Однак працівник міг просто прослухати MQ і виконати завдання, коли отримано повідомлення. Цим досягається саме те, що пропонує Селера, то навіщо взагалі Селера?

Відповіді:


68

Ви маєте рацію, вам зовсім не потрібен Селера. Коли ви розробляєте розподілену систему, існує безліч варіантів, і немає правильного способу зробити те, що відповідає всім ситуаціям.

Багато людей вважають, що є більш гнучким пул споживачів повідомлень, які чекають появи повідомлення в їх черзі, виконують якусь роботу та надсилають повідомлення, коли робота закінчена.

Селера - це фреймворк, який укуповує багато речей у пакеті, але якщо вам насправді не потрібен весь пакет, то краще встановити RabbitMQ і впровадити саме те, що вам потрібно, не вимагаючи всієї складності. Крім того, RabbitMQ можна використовувати в багатьох інших сценаріях, крім сценарію черги завдань, який реалізує Celery.

Але якщо ви вибрали Селера, то двічі подумайте про RabbitMQ. Модель черги повідомлень Celery спрощена, і вона дійсно більше підходить для чогось на кшталт Redis, ніж для RabbitMQ. Кролик має багатий набір опцій, які Селера в основному ігнорує.


6
"Кролик має багатий набір опцій, які Селера в основному ігнорує". Це правда, але трохи вводить в оману. Наприклад, ви можете встановити правила маршрутизації на рівні Rabbit, які не контролюються Celery, але впливають на маршрутизацію та споживання завдань Celery. Проблема дизайну полягає в тому, чи хочете ви, щоб маршрутизацію обробляв абонент, користувальницький маршрутизатор Celery або механізм обміну. Правда, ці налаштування Кролика можуть бути «невидимими» для Селери, але це не означає, що вони не мають корисного ефекту.
Кріс Джонсон,

31

Селера в основному забезпечує приємний інтерфейс для виконання саме того, що ви сказали, і має справу з усіма конфігураціями для вас. Так, ви могли б це зробити вручну, але ви б просто переписали селеру.


6
Є також елемент операцій. Величезні частини Селери існують для надійності (наприклад, не збій, коли певний виняток серіалізований тощо), а також управління робочими групами робітників.
Ассоль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.