kafka benchmark apache-kafka activemq

apache-kafka - kafka vs rabbitmq benchmark



¿Cuál es la diferencia entre Apache kafka y ActiveMQ? (3)

Creo que una cosa que se debe tener en cuenta en una discusión acerca de qué corredores usar (y cuando aparece Kafka) es que el punto de referencia Kafka al que se hace referencia con frecuencia muestra el límite superior de cualquier computadora distribuida moderna. Todos los corredores de hoy tienen aproximadamente la misma capacidad total en MB / s. Kafka lo hace extremadamente bien con mensajes pequeños (10-1024 bytes) en comparación con otros corredores, pero aún así limita alrededor de la marca de ~ 75 Mb / s.

Con frecuencia hay una comparación de manzanas con naranjas, especialmente cuando se habla de "agrupamiento". ActiveMQ y otros intermediarios empresariales agrupan la publicación de mensajes y el seguimiento de las suscripciones de los consumidores. Kafka agrupa la publicación y requiere que el consumidor haga un seguimiento de la suscripción. Parece mínimo, pero es una diferencia significativa.

Todos los corredores tienen los mismos problemas de contrapresión: Kafka puede hacer una "PERFECTA PERSISTENCIA" en la que el productor no está esperando a que el corredor se sincronice con el disco. Esto es bueno para muchos casos de uso, pero probablemente no sea el caso. En el panorama de diapositivas, ppatierno menciona el escenario de "atención sobre cada mensaje único".

Kafka es realmente bueno para la escala horizontal para cosas como el procesamiento de grandes volúmenes de datos de mensajes pequeños. ActiveMQ es más ideal para la clase de caso de uso que se suele llamar mensajería empresarial (esto es solo un término, no significa que Kafka no sea bueno para la empresa): datos procesados ​​(aunque Kafka está agregando esto) .. kiosk .. tienda minorista .. almacenar y reenviar .. dmz recorrido .. publicación de centro de datos a centro de datos ... etc.

Estoy trabajando en Apache Kafka . Quiero saber cuál es mejor: Kafka o ActiveMQ . ¿Cuál es la principal diferencia entre estas dos tecnologías? Quiero implementar Kafka en Spring MVC.


Escucho esta pregunta todas las semanas ... Mientras que ActiveMQ (como IBM MQ o JMS en general) se usa para la mensajería tradicional, Apache Kafka se usa como plataforma de transmisión (mensajería + almacenamiento distribuido + procesamiento de datos). Ambos están construidos para diferentes casos de uso.

Puede usar Kafka para "mensajes tradicionales", pero no puede usar MQ para los escenarios específicos de Kafka.

El artículo “ Apache Kafka contra Enterprise Service Bus (ESB): ¿Amigos, enemigos o frenemas? ( https://www.confluent.io/blog/apache-kafka-vs-enterprise-service-bus-esb-friends-enemies-or-frenemies/ ) "explica por qué Kafka no es competitivo sino complementario a las soluciones de integración y mensajería (incluyendo ActiveMQ) y cómo integrar ambos.


Kafka y ActiveMQ pueden tener algunas superposiciones, pero fueron diseñados originalmente para diferentes propósitos. Así que compararlos es como comparar un Apple y un Orange.

Kafka

Kafka es una plataforma de transmisión distribuida con muy buena capacidad de escalado horizontal. Permite que las aplicaciones procesen y vuelvan a procesar los datos transmitidos en el disco. Debido a su alto rendimiento, se utiliza comúnmente para la transmisión de datos en tiempo real.

ActiveMQ

ActiveMQ es un intermediario de mensajes de propósito general que admite varios protocolos de mensajería como AMQP, STOMP, MQTT. Admite patrones de enrutamiento de mensajes más complicados, así como los patrones de integración empresarial . En general, se utiliza principalmente para la integración entre aplicaciones / servicios, especialmente en una arquitectura orientada a servicios .