Apache Kafka es un sistema de mensajería y una plataforma completa de streaming y de procesamiento de datos en tiempo real. Nos proporciona la capacidad de publicar y procesar flujos de eventos de forma escalable y tolerante a fallos.
Kafka se distribuye bajo la licencia Open Source de la Apache Software Foundation.
Se ha convertido en una de las tecnologías clave para realizar procesamiento de datos en tiempo real.
![Apache 20th Anniversary Logo](https://www.apache.org/img/ASF20thAnniversary.jpg)
¿Cómo funciona Kafka?
Kafka tiene tres componentes fundamentales: Los productores, los consumidores y los brokers.
Los productores son los encargados de escribir mensajes en Kafka.
Los consumidores los pueden leer y procesar.
Los brokers son los nodos que forman parte del cluster de Kafka y almacenan y distribuyen los datos.
Los mensajes de Kafka se almacenan en topics, y se reparten en particiones para hacer el sistema escalable y tolerante a fallos.
APIs en Kafka
Las APIs más populares de Apache Kafka son las siguientes:
Consumidor: Permite consumir mensajes de los brokers de Kafka.
Productor: Permite enviar mensajes a Kafka.
Kafka Streams: Permite procesar los mensajes en los topics de Kafka y realizar transformaciones o agregaciones. (Leé más sobre Kafka Streams en el blog de nuestro colaborador aprenderbigdata.com)
KSQL: Extiende la API de Kafka Streams para facilitar su uso con el lenguaje SQL. (Leé más sobre Kafka KSQL en el blog de nuestro colaborador aprenderbigdata.com)
Connect: Proporciona conectores fáciles de usar para leer o escribir datos en Kafka desde o hacia sistemas externos como bases de datos.
Debemos familiarizarnos con todas ellas para sacar el máximo partido a Kafka y poder adecuar el sistema a nuestros casos de uso.
¿Debo aprender Kafka?
Kafka es una tecnología que no para de crecer, su comunidad está en auge y nos facilita un sistema de mensajería único para usar en las organizaciones.
Para aprender Apache Kafka, neesitaremos conocimientos básicos de programación para usar sus APIs, siendo Java o Scala los más populares. También, deberemos tener algún conocimiento para usar la terminal y ejecutar sus componentes.
Si quieres aprender Kafka puedes apuntarte a nuestro curso de Comienza con Apache Kafka.
¿Quieres ver un video explicando qué es Apache Kafka?