ActiveMQ vs Apollo vs Kafka


No tengo ninguna experiencia previa con *MQs y estoy buscando construir conocimiento sobre JMS y colas de mensajes en general. De esa manera, me pregunto si debería comenzar con ActiveMQ o simplemente "ignorarlo" por completo y comenzar por enseñarme a mí mismo Apolo. ¿Apollo está tan completo como ActiveMQ? ¿Implementa JMS 2.0 (veo que ActiveMQ se quedó atascado con 1.1)? ¿Me voy a perder algo realmente importante?

Además, ¿cómo se compara Kafka con estas dos soluciones?

Author: Martin, 2014-12-27

3 answers

Apache ActiveMQ es un gran caballo de batalla lleno de características y cosas agradables. No es el software MQ más rápido, pero lo suficientemente rápido para la mayoría de los casos de uso. Entre las características se encuentran clustring flexible,fail-over, integraciones con diferentes servidores de aplicaciones, seguridad, etc.

Apache Apollo es un intento de escribir un nuevo núcleo para ActiveMQ para hacer frente a una gran cantidad de clientes y mensajes. No tiene todas las características agradables y convenientes de ActiveMQ, pero se escala mucho mejor. Apolo Apache es un implementación de MQ realmente rápida cuando se le da un gran servidor multinúcleo y miles de conexiones simultáneas. Tiene una interfaz de usuario agradable y simple, pero no es una solución "única para todos".

Parece que hay un intento en curso de fusionar una serie de características de ActiveMQ con HornetQ bajo el nombre ActiveMQ Artemis. HornetQ tiene soporte para JMS2.0, por lo que mi humilde conjetura es que es probable que aparezca en ActiveMQ 6.x.

JIRA , Github

Kafka es una bestia diferente. Es un agente de mensajes muy simple destinado a escalar persistent publish subscribe (temas) lo más rápido posible en varios servidores. Para implementaciones pequeñas y medianas, Kafka probablemente no sea la mejor opción. También tiene su manera de hacer las cosas para lograr el alto rendimiento, por lo que tiene que operar mucho en términos de flexibilidad para obtener un alto rendimiento distribuido. Si eres nuevo en el área de MQ y brokers, supongo que Kafka es exagerado. Por otro lado, si tiene un clúster de servidor de tamaño decente y se preguntan cómo empujar tantos mensajes como sea posible a través de él-dar Kafka un giro!
 89
Author: Petter Nordlander,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-14 16:20:25

Esta es una pregunta antigua, pero voy a proporcionar una respuesta más moderna aquí.

  • El proyecto Apolo está muerto extraoficialmente y sugieren que Artemis es el nuevo hotness. ( link ) El (aparentemente) estancado desarrollo de Apolo no me da confianza en el futuro de Artemisa.
  • Mi experiencia es similar a la respuesta de Petter en que ActiveMQ es rico en características y capaz. Sin embargo, parece que cada versión corrige los bloqueos aleatorios y las fugas de memoria y esto no inspira confianza. Es estable para mi proyecto (que usa clustering) pero hemos visto un comportamiento extraño y se bloquea en el broker en la última docena de versiones (actualmente usando 5.14.3)
  • No he usado RabbitMQ (mi proyecto actual está comprometido con ActiveMQ) pero lo probaré en el próximo proyecto que necesite un bus de mensajería. No tener el fregadero de la cocina de características para apoyar con suerte significará que es más estable.

EDITAR: La versión 2.3.0 de Apache Artemis ocurrió ~Sept 5 2017. Así que parece estar progresando a partir de ahora. Pero (link ) el registro de cambios todavía parece demasiado aterrador.

 22
Author: Matthew B.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-26 19:37:37

Soy un punto de referencia de rendimiento de ActiveMQ, Apollo, HornetQ bajo escenario no persistente y escenario persistente, creo que será útil para que usted elija cuál debe usarse, el enlace como se muestra a continuación: http://hiramchirino.com/jms-benchmark/ubuntu-2600k/index.html

 2
Author: Tommy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-13 17:57:01