Repaso
English
Diseño de sistemasAvanzadoSD-09

¿Cuál es la diferencia clave entre Kafka y una cola tradicional como RabbitMQ?

Opciones

  1. Kafka no puede conservar los mensajes tras entregarlos
  2. Kafka es un log duradero; los consumidores releen por offset (Opción correcta)
  3. RabbitMQ solo se usa para el logging de aplicaciones
  4. No hay diferencia entre los dos sistemas

Respuesta

Kafka es un log duradero y particionado; los consumidores llevan su offset y pueden releer, y muchos grupos de consumidores leen el mismo stream

Por qué

RabbitMQ: un mensaje espera en una cola hasta que un consumidor lo toma y lo confirma; entonces desaparece. Ideal para repartir tareas entre workers.

Kafka: los mensajes se añaden a un log que se conserva durante días. Cada consumidor recuerda su posición (offset), así que puede releer mensajes antiguos, y muchos servicios distintos pueden leer el mismo stream por separado.

Kafka encaja con streams de eventos de gran volumen; el orden solo se garantiza dentro de una partición.

Recuerda

RabbitMQ = cola de tareas. Kafka = log de eventos que se puede releer.

Términos clave

Practica esta pregunta en Repaso