¿Qué es Apache Kafka?

En este artículo, aprenderemos los conceptos básicos de Apache Kafka y sus conceptos básicos. Y sí, también un poco de historia.

Que es Kafka

Apache Kafka es una plataforma de transmisión distribuida de código abierto desarrollada por LinkedIn y administrada por la fundación de software Apache.

Kafka tiene como objetivo proporcionar una plataforma unificada, escalable, de alto rendimiento y baja latencia para manejar flujos de datos en tiempo real .

Apache Kafka se basa en el principio de registro de confirmación , es decir, los mensajes en Kafka se registran de forma permanente. Kafka permite que el mecanismo pub / sub produzca y consuma mensajes.

Un poco de historia

El nombre Kafka está inspirado en el autor Franz Kafka porque a uno de los desarrolladores de Kafka Jay Kreps le gusta su trabajo.

El individuo detrás del proyecto Kafka creó una nueva empresa llamada Confluent.

Puede obtener más información sobre Franz Kafka aquí .

Arquitectura

Aquí está la vista de alto nivel de la arquitectura de Kafka.

Kafka se ejecuta en un clúster de uno o más servidores que se denominan intermediarios en la terminología de Kafka. Tenemos consumidores y productores que leen y escriben mensajes (llamados registros ) en terminología de Kafka. Aprenderemos más sobre los temas y la partición de Kafka en la próxima sección.

Hay 4 API principales en Kafka:

  1. Producer API: permite la transmisión de publicaciones en Kafka.
  2. API de consumidor: permite suscribirse y consumir transmisiones en Kafka.
  3. Conector API: permite importar / exportar datos desde / hacia otros sistemas.
  4. API de transmisiones: permite convertir transmisiones en salida.

Vamos a utilizar mucho la API de productor y consumidor en los próximos tutoriales.

Temas y particiones de Kafka

Kafka usa temas para almacenar los registros (mensajes) y el productor crea nuevos mensajes en el tema y el consumidor lee el mensaje del tema.

Los temas se pueden dividir (particionar) para escalar y distribuir datos en varios sistemas y se pueden replicar (copiar) en los distintos sistemas para manejar la conmutación por error.

Kafka logra un rendimiento asombroso utilizando la técnica de partición y réplica.

Por qué Zookeeper

Kafka utiliza zookeeper para facilitar a los intermediarios los metadatos sobre los procesos que se ejecutan en el sistema y para proporcionar verificación de estado y elección de liderazgo de intermediarios. Zookeeper es como ir al software cuando se trata de manejar desafíos de aplicaciones distribuidas.

¿Dónde podemos usar Kafka?

Kafka puede cumplir con el requisito de intercambio de datos en tiempo real. Por ejemplo, Uber gestiona la coincidencia de pasajeros y conductores, análisis en tiempo real, intercambio en tiempo real, comercio electrónico, seguimiento de páginas vistas, etc.

Uno de los usos populares de Kafka es en aplicaciones de arquitectura de microservicios donde se implementan múltiples micro aplicaciones en diferentes servidores que facilitan la comunicación usando Kafka.

Cómo integrar Kafka en su código

Apache Kafka ha lanzado bibliotecas para diferentes lenguajes de programación. Por ejemplo, enumerando a continuación algunas bibliotecas:

Python: https://github.com/confluentinc/confluent-kafka-python

Nodo: https://www.npmjs.com/package/no-kafka


PHP: https://github.com/EVODelavega/phpkafka


Ruby: https : //github.com/zendesk/ruby-kafka

Puede utilizar la integración de Kafka en Java directamente utilizando la clase org.apache.kafka .

Conclusión

Estudiamos qué es Kafka y por qué necesitamos un marco de procesamiento de flujos. Kafka es realmente útil al desarrollar una aplicación distribuida.

Este artículo es parte de una serie, consulte otros artículos aquí:

1: Qué es Kafka
2: Configuración de Zookeeper Cluster para Kafka en AWS EC2
3: Configuración de Multi-Broker Kafka en AWS EC2
4: Configuración de la autenticación en el clúster de Multi-Broker Kafka en AWS EC2
5: Configuración de la administración de Kafka para el clúster de Kafka
6: Estimación de capacidad para Kafka Cluster en producción
7: Prueba de rendimiento Kafka Cluster

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *