Apache Kafka es la plataforma distribuida de tranmisión de eventos de mayor uso por su alto rendimiento y escalabilida.
¿Qué es Kafka?
Apache Kafka es la plataforma distribuida de tranmisión de eventos reconocida por su alta disponibilidad, flexibilidad y escalabilidad.
Fue creada por LinkedIn en 2011 y después donada a la Apache Software Foundation.
¿Qué es un sistema de transmisión de eventos?
Es la practica de capturar datos en tiempo real de los eventos que ocurren de la vida real y guardarlos para luego poder procesarlos, manipularlos y actuar en consecuencia.
Técnicamente, la fuente de los eventos generalmente serán bases de datos, dispositivos, servicios, sensores y sobre todo acciones en aplicaciones.
Por ejemplo, cuando un usuario en Facebook da click en seguir a un contacto, nuestro sistema esta generando un evento que podemos llamar “solicitar amistad” y este evento será almacenado para luego poder procesarlo y generar acciones.
Las acciones serán distintas dependiendo de que secciones de nuestro proceso estan procesando el evento, ya sea para mandar un correo, para ingresar un nuevo registro en la base de datos o para mandar un notificación en la aplicación.
¿Cómo funciona Kafka?
Kafka es un sistema distribuido que consiste en servidores y clientes que se comunican a través del protocolo TCP.
Servidores: un clúster de uno o más servidores que pueden abarcar varios centros de datos o regiones de la nube. Algunos de estos servidores forman la capa de almacenamiento, llamados brokers.
Clientes: Permiten escribir aplicaciones distribuidas y microservicios que leen, escriben y procesan flujos de eventos. Existen librerías en distintos lenguajes como Go, Python, C/C++ etc.
Términos importantes en Kafka
Eventos: Es lo que guardamos del evento. Se almacena la llave, valor, fecha y hora y metadatos adicionales.
Producers: Aplicaciones que publican los eventos hacia kafka
Consumers: Aplicaciones que se suscriben (para leer o procesar) los eventos de kafka
Topicos: La manera en se clasificas los eventos. Se pueden entender como categorías en los que se almacenan eventos
Particiones: La manera de distribuir un topico entre multiples brokers
El video relacionado a este articulo es erróneo
Gracias Ignacio. Listo. Video link corregido.