Kafka Streams es una biblioteca utilizada para el procesamiento y transformación de datos utilizando Apache Kafka. Es posible utilizarlo para múltiples casos, veamos algunos ejemplos:
- Transformación de datos
- Detección de patrones
- Detección de fraudes
- Monitoreo y alertas
- Migración de datos
Para utilizar Kafka streams solo programaremos una aplicación común Java, no es necesario crear un cluster separado a diferencia de Spark, Storm, Apache Flink, etc. Al utilizar Kafka tendrá todos sus beneficios y el procesamiento será de uno a uno, esto significa que no procesaremos multiples mensajes al mismo tiempo.
Arquitectura de Kafka
Kafka streams es un jar que se instala en un cluster Kafka, este leerá información desde y hacia kafka como se muestra en la siguiente imagen:
Para dar los primeros pasos con Apache Kafka les recomendamos el siguiente post Primeros pasos con Apache Kafka en Español !.
Terminología
A continuación se muestra la terminología a utilizar a lo largo de los posts:
- Stream : Es una secuencia de registros inmutable, ordenado y tolerante a fallas.
- Stream processor: Es un nodo de procesamiento.
- Topology: Una topología es un grafo compuesto por streams y stream processors
- Source processor: Es un processor especial que lee datos directamente de un kafka topic, no hay nadie antes de el y no hace modificaciones a los datos.
- Sink processor:Es un processor que no tiene hijos, manda un stream directamente a un Kafka topic.
En este post vimos los primeros pasos y la terminología de Kafka streams, en siguientes posts explicaremos en detalle su funcionamiento, síguenos en nuestras redes sociales para enterarte sobre nuevo contenido https://www.facebook.com/devs4j/ y https://twitter.com/devs4j.
Autor: Alejandro Agapito Bautista
Twitter: @raidentrance
Contacto:raidentrance@gmail.com