Apache Kafka

¿Qué es Apache Kafka y cómo funciona??

¿Qué es Apache Kafka y cómo funciona??

En esta lección, veremos qué es Apache Kafka y cómo funciona junto con algunos de los casos de uso más comunes.  Apache Kafka se desarrolló originalmente en LinkedIn en 2010 y se trasladó para convertirse en un proyecto Apache de alto nivel en 2012. Tiene tres componentes principales:

Estudiaremos muchos más conceptos de Kafka en las próximas secciones. Sigamos adelante.

Conceptos de Apache Kafka

Antes de profundizar, debemos ser minuciosos sobre algunos conceptos en Apache Kafka. Estos son los términos que debemos conocer, muy brevemente:

Particiones de tema

El concepto de tema, particiones de tema y desplazamiento también se puede aclarar con una figura ilustrativa:

Partición de tema y compensación de consumidor en Apache Kafka

Apache Kafka como sistema de mensajería de publicación y suscripción

Con Kafka, las aplicaciones de productor publican mensajes que llegan a un nodo de Kafka y no directamente a un consumidor. Desde este nodo de Kafka, los mensajes son consumidos por las aplicaciones de consumo.

Productor y consumidor de Kafka

Como un solo tema puede obtener una gran cantidad de datos de una sola vez, para mantener Kafka escalable horizontalmente, cada tema se divide en particiones y cada partición puede vivir en cualquier máquina nodo de un clúster.

Nuevamente, Kafka Broker no mantiene registros de qué consumidor ha consumido cuántos paquetes de datos. Es el responsabilidad de los consumidores de realizar un seguimiento de los datos que ha consumido. Debido a que Kafka no realiza un seguimiento de los reconocimientos y mensajes de cada aplicación de consumidor, puede administrar muchos más consumidores con un impacto insignificante en el rendimiento. En producción, muchas aplicaciones incluso siguen un patrón de consumidores por lotes, lo que significa que un consumidor consume todos los mensajes en una cola en un intervalo de tiempo regular.

Instalación

Para comenzar a usar Apache Kafka, debe estar instalado en la máquina. Para hacer esto, lea Instalar Apache Kafka en Ubuntu.

Caso de uso: seguimiento del uso del sitio web

Kafka es una excelente herramienta que se utiliza cuando necesitamos realizar un seguimiento de la actividad en un sitio web. Los datos de seguimiento incluyen, entre otros, visitas a páginas, búsquedas, cargas u otras acciones que los usuarios pueden realizar. Cuando un usuario está en un sitio web, el usuario puede realizar cualquier cantidad de acciones cuando navega por el sitio web.

Por ejemplo, cuando un nuevo usuario se registra en un sitio web, la actividad puede rastrearse en qué orden un nuevo usuario explora las funciones de un sitio web, si el usuario establece su perfil según sea necesario o prefiere saltar directamente a las funciones del sitio web. sitio web. Cada vez que el usuario hace clic en un botón, los metadatos de ese botón se recopilan en un paquete de datos y se envían al clúster de Kafka desde donde el servicio de análisis de la aplicación puede recopilar estos datos y producir información útil sobre los datos relacionados. Si buscamos dividir las tareas en pasos, así es como se verá el proceso:

  1. Un usuario se registra en un sitio web y entra en el panel. El usuario intenta acceder a una función directamente interactuando con un botón.
  2. La aplicación web construye un mensaje con estos metadatos en una partición de tema del tema "clic".
  3. El mensaje se agrega al registro de confirmación y el desplazamiento se incrementa
  4. El consumidor ahora puede extraer el mensaje de Kafka Broker y mostrar el uso del sitio web en tiempo real y mostrar datos anteriores si restablece su compensación a un posible valor anterior

Caso de uso: cola de mensajes

Apache Kafka es una excelente herramienta que puede actuar como un reemplazo de herramientas de corredores de mensajes como RabbitMQ. La mensajería asincrónica ayuda a desacoplar las aplicaciones y crea un sistema altamente escalable.

Al igual que el concepto de microservicios, en lugar de crear una aplicación grande, podemos dividir la aplicación en varias partes y cada parte tiene una responsabilidad muy específica. De esta manera, las diferentes partes también se pueden escribir en lenguajes de programación completamente independientes! Kafka tiene un sistema integrado de partición, replicación y tolerancia a fallas que lo hace bueno como un sistema de intermediario de mensajes a gran escala.

Recientemente, Kafka también se considera una muy buena solución de recopilación de registros que puede administrar el intermediario del servidor de recopilación de archivos de registro y proporcionar estos archivos a un sistema central. Con Kafka, es posible generar cualquier evento que desee que conozca cualquier otra parte de su aplicación.

Uso de Kafka en LinkedIn

Es interesante notar que Apache Kafka se vio y se usó anteriormente como una forma a través de la cual las canalizaciones de datos se podían hacer consistentes y a través de la cual los datos se ingerían en Hadoop. Kafka funcionó de manera excelente cuando había múltiples fuentes de datos y destinos y no era posible proporcionar un proceso de canalización separado para cada combinación de origen y destino. El arquitecto de Kafka de LinkedIn, Jay Kreps, describe bien este problema familiar en una publicación de blog:

Mi propia participación en esto comenzó alrededor de 2008 después de que enviamos nuestra tienda de valor clave. Mi siguiente proyecto fue intentar poner en marcha una configuración de Hadoop que funcionara y mover algunos de nuestros procesos de recomendación allí. Teniendo poca experiencia en esta área, naturalmente presupuestamos algunas semanas para la entrada y salida de datos, y el resto de nuestro tiempo para implementar algoritmos de predicción sofisticados. Entonces comenzó un largo trabajo.

Apache Kafka y Flume

Si se muda para comparar estos dos en función de sus funciones, encontrará muchas características comunes. Éstos son algunos de ellos:

Conclusión

En esta lección, analizamos muchos conceptos sobre Apache Kafka. Lea más publicaciones basadas en Kafka aquí.

Cómo cambiar el tamaño, el color y el esquema del puntero del mouse y del cursor en Windows 10
El puntero y el cursor del mouse en Windows 10 son aspectos muy importantes del sistema operativo. Esto también se puede decir de otros sistemas opera...
Motores de juegos gratuitos y de código abierto para desarrollar juegos de Linux
Este artículo cubrirá una lista de motores de juegos de código abierto y gratuitos que se pueden usar para desarrollar juegos 2D y 3D en Linux. Existe...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...