2012-01-31 19 views
32

Z mojego rozumienia, Seler jest rozproszoną kolejką zadań, co oznacza, że ​​jedyną rzeczą, którą powinien zrobić, jest wysłanie zadań/zadań do innych serwerów i uzyskanie wyniku z powrotem. RabbitMQ to kolejka komunikatów i nic więcej. Pracownik może jednak po prostu wysłuchać MQ i wykonać zadanie po odebraniu wiadomości. Daje to dokładnie to, co oferuje Seler, więc dlaczego w ogóle potrzebujesz selera?Dlaczego warto używać Celery zamiast RabbitMQ?

Odpowiedz

31

Masz rację, w ogóle nie potrzebujesz selera. Kiedy projektujesz system rozproszony, istnieje wiele opcji i nie ma właściwego sposobu robienia rzeczy, które pasują do każdej sytuacji.

Wiele osób uważa, że ​​bardziej elastyczne jest posiadanie grup konsumentów wiadomości oczekujących na pojawienie się wiadomości w kolejce, wykonanie pracy i wysłanie wiadomości po zakończeniu pracy.

Seler to framework, który opakowuje wiele rzeczy w pakiet, ale jeśli naprawdę nie potrzebujesz całego pakietu, lepiej jest skonfigurować RabbitMQ i zaimplementować to, czego potrzebujesz bez całej złożoności. Ponadto RabbitMQ może być użyty w wielu innych scenariuszach oprócz scenariusza kolejki zadań, który realizuje Celery.

Ale jeśli wybierzesz Seler, pomyśl dwa razy o RabbitMQ. Model kolejkowania wiadomości Selera jest uproszczony i naprawdę lepiej pasuje do czegoś takiego jak Redis niż do RabbitMQ. Królik ma bogaty zestaw opcji, które w zasadzie ignoruje Seler.

+2

"Królik ma bogaty zestaw opcji, których Seler zasadniczo ignoruje". To prawda, ale trochę zwodnicze. Możesz na przykład skonfigurować reguły routingu w warstwie Królika, które nie są kontrolowane przez Seler, ale wpływają na routing i konsumpcję zadań Celery. Problem w projektowaniu polega na tym, czy routing ma być obsługiwany przez dzwoniącego, niestandardowy router Seler lub mechanizm wymiany. To prawda, że ​​te konfiguracje Królika mogą być "niewidzialne" dla Selera, ale to nie znaczy, że nie przynoszą użytecznych efektów. –

21

Seler w zasadzie zapewnia przyjemny interfejs do robienia tego, co mówisz, i zajmuje się całą konfiguracją dla ciebie. Tak, możesz to zrobić ręcznie, ale po prostu przepisujesz seler.

+5

Istnieje również element operacji. Ogromne części selera są tam dla niezawodności (na przykład nie ulegają awarii, gdy określony wyjątek jest serializowany, itp.) I zarządzaniu pracownikami i grupami pracowników. – asksol

Powiązane problemy