Apache Kafka es un proyecto Open Source sobre una plataforma de distribución de datos que permite publicar, suscribirse, almacenar y administrar flujos de datos en tiempo real.
¿Cómo funciona Kafka?
Productores, son los encargados de escribir mensajes en Kafka
Consumidores, leen o consumen los mensajes de los brokers de Kafka
Brokers, son los nodos que forman parte del cluster de Kafka y almacenan y distribuyen los datos
Se ejecuta como un clúster que puede estar distribuido en varios servidores en uno o varios datacenter.
Los nodos (llamados brokers), almacenan los flujos de datos entrantes y estos se clasifican (llamados topics).
Los datos se distribuyen en particiones en los diferentes nodos que conforman el clústes y se les aplica un marca de tiempo.
Con ello se asegura un acceso/lectura rápida al mismo tiempo que se asegura una alta disponibilidad.
¿Dónde te ayuda Apache Kafka?
Kafkapermite publicar y suscribirse a flujos de eventos y permite almacenar estos eventos de una forma tolerante a fallos, escalable, persistente y con capacidad de replicación.
Además de almacenar estos eventos, la funcionalidad se extiende con la capacidad de procesarlos en tiempo real, a medida que se reciben de múltiples fuentes de datos. Kafka se integra con numerosas tecnologías, de esta forma, permite construir flujos de datos en tiempo real entre distintos sistemas y aplicaciones de manera desacoplada.
Ventajas o características de Kafka
Plataforma tolerante a fallos, baja latencia (Importante en Big-Data) y escalable horizontalmente.
Efectivo para aplicaciones que presentan reaccionar a eventos en tiempo real
Control de mensajes y escritura transaccional para garantizar que los mensajes se transmiten una sola vez (exactly-once delivery)