Comparativa Kafka, Flume y RabbitMQ

Apache Kafka

Apache Flume

RabbitMQ

Definición Apache Kafka es un bus de mensajes optimizado para los flujos de datos de alta entrada y la repetición Apache Flume es un servicio distribuido que mueve de forma fiable y eficiente grandes cantidades de datos, especialmente logs RabbitMQ es un sistema de colas de mensajes MQ que permite comunicarse a multitud de actores entre ellos de forma rápida, segura, asíncrona y fiable
Destacable

Actúa de amortiguador entre productores y consumidores, ideal para absorber picos de carga.

Diferentes grupos de consumidores pueden consumir mensajes a diferente ritmo.

Proporciona alta velocidad de respuesta.

Especializado en datos de logs.

Recolección y agregación de logs de forma sencilla.

Ingesta en multitud de formatos

Trabajos en segundo plano donde se precise un alto rendimiento, fiabilidad, comunicación y la integración dentro y entre las aplicaciones.

Se centra en las garantías de entrega entre productores y consumidores

Volumen Grandes: 100k eventos/seg Menores: 20k eventos/seg Menores: 20k eventos/seg
Baja latencia Alto rendimiento Alto rendimiento No soporta
Licencia Open Source: Licencia Apache 2.0 Open Source: Licencia Apache 2.0 Open Source: Licencia Pública Mozilla
Desarrollado en Scala (JVM) Java Erlang
Lenguajes que soporta Ruby, Python, Java y Node.js Ruby, Python, Node.js, Clojure, Go, Java y C
Lectura de datos

(Source)

 

Proporciona multitud de conectores que le hacen conectarse a casi cualquier fuente de datos. Ejemplo: ActiveMQ, IBM MQ, JDBC, JMS, Replicator Multitud de formatos y aplicaciones:

JMS, HTTP, Kafka, IRC, Solr, Kite y Custom

Específicos de logs: Avro, Thrift, Syslog y Netcat

Avro, Binary, CSV, MySQL, Postgres, JSON, Log, Protobuf, SDC Record, Text, XML
Escritura de datos

(sink)

Proporciona multitud de conectores que le hacen almacenar los datos en cualquier sitio. Ejemplo: HDFS, Amazon S3, Elasticsearch, JDBC HDFS, HBase, Logger, File Roll, Null y ElasticSearch HDFS
colas federados No No
Enrutamiento complejo No No
Escalamiento horizontal vertical vertical
Protocolos Propio Varios: AMQP y JMS
Replicación de eventos Si No Si

 

Otros artículos que pueden ser de interés:

Autor: Diego Calvo