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
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.
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.
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
"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. –