Aprende Apache Kafka desde Cero

|

¿Qué es Apache Kafka?

Apache Kafka es un sistema de mensajes “publish/subscribe” basado en una arquitectura P2P. Creada inicialmente por Linkedin, fue posteriormente donada a la Apache Software Foundation, por lo cual pasó a ser Open Source. Actualmente es fundamental a la hora de  procesar millones de datos.

Esta plataforma ha empezado a ganar renombre gracias a que grandes empresas como Netflix y Microsoft la usan en sus arquitecturas. Apache Kafka está escrito en Java y Scala, por lo cual debes tener nociones básicas de estos lenguajes para empezar a usarla. Hace unos días tuvimos un webinar de introducción a Apache Kafka junto a Andrés Gómez Ferrer donde aprendimos a usarlo desde cero, y por esto, aquí te dejaremos los conceptos básicos que necesitas para entender su funcionamiento y un caso práctico para que empieces a picar algo de código en esta herramienta.

Primeros pasos

Antes de empezar, debes conocer Zookeeper, (necesario para levantar Kafka). Este es un servicio distribuido que sirve para almacenar configuraciones distribuidas y gestiones multiservicio. Internamente funciona como un árbol de directorio, cada elemento de la estructura es conocido como Znode, los cuales pueden almacenar información en su interior, por ejemplo un JSON String.

En la estructura de Apache Kafka hay dos partes importantes llamadas productores y consumidores. Dependiendo de la configuración de cada proyecto, Kafka puede funcionar bajo dos tipos de sistemas de mensajes. El primero es un Modelo de Cola, en el cual el productor distribuye los mensajes de manera equitativa a todos los consumidores, y la otra manera es llamada publicador/suscriptor en el que los consumidores se suscriben a un topic y de esta manera un mismo mensaje puede llegar a varios consumidores.

El servicio principal de esta herramienta es Kafka Broker, donde se crean las colas de mensajes o también llamadas topics. Los topics se pueden dividir en particiones para que de esta manera se puedan fraccionar en diferentes clusters, y así facilitar su procesamiento. Dentro de las particiones se almacenan los mensajes que tienen un identificador único llamado offset.

Otra parte importante dentro de Kafka son las Réplicas, las cuales funcionan para garantizar la continuidad de los servicios, ya que si algún broker llega a fallar tendrá un respaldo y un procedimiento que Kafka puede utilizar para seguir funcionando. La Réplicas se asignan a cada Topic y el número máximo de estas debe ser igual o menor a la cantidad de brokers asignados.

La parte más importante en Kafka son los mensajes, los cuales están compuestos por cuatro partes: Header, Timestamp, Clave y un Valor. La clave se suele utilizar para decidir a qué partición va cada mensaje.

¿Cómo crear un topic?

Lo más importante en las líneas de código de este proceso, es incluir el número de Particiones, el número de Réplicas y de manera opcional las configuraciones del Topic. El código se debe ver así:

kafka-topics.sh --zookeper localhost:2181 --create --topic topicTest --partitions 4 --replication-factor 2 -config x=y

¿Cómo conseguir Kafka?

Al ser una herramienta Open Source, su descarga es muy fácil y para ello puedes ir a esta página. Ahora que ya lo tienes instalado en tu ordenador, aquí te dejamos un ejercicio práctico para que entiendas su funcionamiento y lo empieces a usar.

YouTube video

En Big Data podrás encontrar miles de retos y beneficios que solo esta industria te puede ofrecer, convertirte en un experto en esta especialidad es posible en tan solo seis meses y mucho esfuerzo de tu parte. Descubre el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp y conoce cómo lograrás esta meta con nosotros. Descarga aquí el temario o si tienes preguntas, programa una llamada con nosotros.

[email protected]