2014-12-27 39 views
57

Nie mam żadnego wcześniejszego doświadczenia z * MQs i zamierzam budować wiedzę na temat JMS i ogólnie kolejki wiadomości. W ten sposób, zastanawiam się, czy powinienem zacząć od ActiveMQ, czy po prostu "zignorować" go całkowicie i zacząć od nauki Apollo. Czy Apollo jest tak kompletny jak ActiveMQ? Czy implementuje JMS 2.0 (widzę, że ActiveMQ utknął z 1.1)? Czy pominąłem coś naprawdę ważnego?ActiveMQ vs Apollo vs Kafka

Ponadto, w jaki sposób Kafka porównuje te dwa rozwiązania?

+2

Sprawdź również nowy Artemis ActiveMQ: https://activemq.apache.org/artemis/ – mjn

Odpowiedz

85

Apache ActiveMQ to świetny koń roboczy, pełen funkcji i przyjemnych rzeczy. Nie jest to najszybsze oprogramowanie MQ, ale wystarczająco szybkie w większości przypadków. Wśród funkcji są: elastyczne odwzorowanie, przełączanie awaryjne, integracje z różnymi serwerami aplikacji, bezpieczeństwo itp.

Apache Apollo jest próbą napisania nowego rdzenia dla ActiveMQ, aby poradzić sobie z dużą liczbą klientów i wiadomości. Nie ma wszystkich przyjemnych i wygodnych funkcji ActiveMQ, ale skaluje się o wiele lepiej. Apache Apollo to naprawdę szybka implementacja MQ, gdy dajesz mu duży, wielordzeniowy serwer i tysiące równoczesnych połączeń. Ma ładny, prosty interfejs użytkownika, ale nie jest rozwiązaniem "uniwersalnym dla wszystkich".

Wygląda na to, że trwa próba połączenia szeregu funkcji ActiveMQ z HornetQ pod nazwą ActiveMQ Artemis. HornetQ obsługuje JMS2.0, więc moim skromnym przypuszczeniem jest, że prawdopodobnie pojawi się w ActiveMQ 6.x.

JIRA, Github

Kafka innym zwierzęciem. Jest to bardzo prosty broker komunikatów przeznaczony do skalowania trwałych subskrybcji publikacji (tematów) tak szybko, jak to możliwe na wielu serwerach. W przypadku małych i średnich wdrożeń Kafka prawdopodobnie nie jest najlepszą opcją. Ma również swój sposób na robienie rzeczy, aby osiągnąć wysoką przepustowość, więc musisz dużo handlować w zakresie elastyczności, aby uzyskać wysoką rozproszoną przepustowość. Jeśli jesteś nowy w obszarze MQ i brokerów, to chyba Kafka jest przesadą. Z drugiej strony - jeśli masz porządny klaster serwerów i zastanawiasz się, jak przesłać jak najwięcej wiadomości za jego pośrednictwem - daj Kafce spin!

+0

Dzięki! Domyślam się, że Apache to droga, którą można wykonać w moim przypadku. – Martin

+4

ActiveMQ Artemis 1.0.0 został wydany: https://activemq.apache.org/artemis/ – mjn

+0

Jeśli (częściowo) rozumiem relację ActiveMQ do Apollo (nowsze wdrożenie w oparciu o wcześniejsze doświadczenia itp.), Jaka jest ogólna wizja (cel, motywacja) Artemidy? –

22

To jest starsze pytanie, ale podam tutaj bardziej nowoczesną odpowiedź.

  • Projekt Apollo jest nieumyślnie martwy i sugeruje, że Artemis jest nową goryczą. (link) (Z pozoru) opóźniony rozwój Apollo nie daje mi pewności co do przyszłości Artemidy.
  • Moje doświadczenie jest podobne do odpowiedzi Pettera, ponieważ ActiveMQ jest bogaty w funkcje i zdolny. Wydaje się jednak, że każde wydanie rozwiązuje losowe awarie i wycieki pamięci, a to nie budzi zaufania. Jest stabilny dla mojego projektu (który wykorzystuje klastrowanie), ale widzieliśmy dziwne zachowanie i awarie w brokerze w ciągu ostatnich kilkunastu wydań (obecnie używających 5.14.3)
  • Nie korzystałem z RabbitMQ (mój obecny projekt jest poświęcony ActiveMQ), ale będę go wypróbowywać w następnym projekcie, który potrzebuje magistrali komunikacyjnej. Brak umywalek kuchennych z funkcjami do podtrzymania, miejmy nadzieję, że będzie bardziej stabilny.

EDYCJA: Wydano wersję 2.3.0 Apache Artemis ~ 5 września 2017 r. Wygląda więc na to, że postępuje już teraz. Ale (link) dziennik zmian wciąż wydaje się zbyt przerażający.

+1

Czy masz aktualizację RabbitMQ? – DevJ3rry

+1

FWIW, rozwój w ActiveMQ Artemis jest teraz dużo bardziej aktywny niż kiedykolwiek Apollo. W rzeczywistości liczba współpracowników do Artemidy jest już większa niż liczba aktywnych ActiveMQ, przynajmniej według GitHub. Artemis został już skomercjalizowany w ramach [Red Hat JBoss AMQ 7] (https://www.redhat.com/en/technologies/jboss-middleware/amq). –

2

tu wyznacznikiem wydajności ActiveMQ, Apollo, hornetq pod Nietrwałe scenariusza i uporczywego scenariusza, myślę, że to będzie pomocne dla u, aby wybrać, który z nich powinien w użyciu, link, jak pokazano poniżej: http://hiramchirino.com/jms-benchmark/ubuntu-2600k/index.html

+2

Oto nowszy test porównawczy przeprowadzony z szerszą gamą rozwiązań do przesyłania wiadomości: https://softwaremill.com/mqperf/. Apollo nie został uwzględniony, ponieważ nie jest już aktywnie rozwijany, ale zawarte są w nim ActiveMQ 5.x i Artemis ActiveMQ. –