Inicio
Temas
¿Qué es Apache Kafka?
Apache Kafka (Kafka) es una plataforma de transmisión distribuida de código abierto que permite (entre otras cosas) el desarrollo de aplicaciones impulsadas por eventos en tiempo real. ¿Qué significa esto?
En la actualidad, miles de millones de fuentes de datos generan continuamente flujos de registros de datos, incluidos flujos de eventos. Un evento es un registro digital de una acción que sucedió y la hora en que sucedió. Normalmente, un evento es una acción que impulsa a otra acción como parte de un proceso. Un cliente que hace un pedido, elige un asiento en un vuelo o envía un formulario de registro son todos ejemplos de eventos. Un evento no tiene por qué involucrar a una persona; por ejemplo, el informe de temperatura de un termostato conectado en un momento dado también es un evento.
Estos flujos ofrecen oportunidades para aplicaciones que responden a datos o eventos en tiempo real. Una plataforma de transmisión permite a los desarrolladores crear aplicaciones que consumen y procesan continuamente estas transmisiones a velocidades extremadamente altas, con un alto nivel de fidelidad y precisión en función del orden correcto de aparición.
LinkedIn desarrolló Kafka en 2011 como un intermediario de mensajes de alto rendimiento para su propio uso, posteriormente lo pasó a código abierto y donó Kafka a Apache Software Foundation (el enlace se encuentra fuera de ibm.com). Hoy en día, Kafka se ha convertido en la plataforma de transmisión más utilizada, capaz de ingerir y procesar billones de registros por día sin ningún retraso perceptible en el rendimiento a medida que aumentan los volúmenes. Algunas organizaciones del índice Fortune 500, como Target, Microsoft, AirBnB y Netflix, confían en Kafka para ofrecer a sus clientes experiencias basadas en datos en tiempo real.
El siguiente video proporciona más información sobre Kafka (9:10):
Kafka tiene tres prestaciones principales:
Los desarrolladores pueden aprovechar estas prestaciones de Kafka a través de cuatro API:
Kafka es una plataforma distribuida: se ejecuta como un clúster tolerante a errores y de alta disponibilidad que puede abarcar varios servidores e incluso varios centros de datos. Los temas de Kafka están divididos y replicados de tal manera que pueden escalarse para atender a grandes volúmenes de consumidores simultáneos sin que ello afecte al rendimiento. Como resultado, según Apache.org, "Kafka funcionará igual tanto si tiene 50 KB como 50 TB de almacenamiento persistente en el servidor".
Kafka se utiliza principalmente para crear dos tipos de aplicaciones:
RabbitMQ es un intermediario de mensajes de código abierto muy popular, un tipo de middleware que permite que las aplicaciones, los sistemas y los servicios se comuniquen entre sí mediante la conversión de protocolos de mensajería entre ellos.
Debido a que Kafka empezó siendo una especie de intermediario de mensajes (y, en teoría, todavía puede usarse como tal) y debido a que RabbitMQ admite un modelo de mensajería de publicación/suscripción (entre otros), Kafka y RabbitMQ a menudo se comparan como soluciones alternativas. Pero las comparaciones no son realmente prácticas y, a menudo entran en un exceso de detalles técnicos que no son relevantes a la hora de elegir entre las dos opciones. Por ejemplo, que los temas de Kafka pueden tener varios suscriptores, mientras que cada mensaje de RabbitMQ solo puede tener uno; o que los temas de Kafka son duraderos, mientras que los mensajes de RabbitMQ se eliminan una vez consumidos.
La conclusión es la siguiente:
Kafka se usa con frecuencia con varias otras tecnologías de Apache como parte de un procesamiento de flujos más grande, una arquitectura impulsada por eventos o una solución de análisis de Big Data.
Apache Spark es un motor de análisis para el procesamiento de datos a gran escala. Puede usar Spark para realizar análisis en transmisiones enviadas por Apache Kafka y para producir aplicaciones de procesamiento de transmisión en tiempo real, como el análisis de flujo de clics mencionado anteriormente.
Apache NiFi es un sistema de gestión de flujos de datos con una interfaz visual de tipo arrastrar y soltar. Dado que NiFi puede funcionar como productor de Kafka y consumidor de Kafka, es una herramienta idónea para gestionar los retos de flujo de datos que Kafka no puede abordar.
Apache Flink es un motor para realizar cálculos en flujos de eventos a escala, con alta velocidad y baja latencia constantes. Flink puede ingerir transmisiones como consumidor de Kafka, realizar operaciones basadas en estas transmisiones en tiempo real y publicar los resultados en Kafka o en otra aplicación.
Apache Hadoop es un marco de software distribuido que le permite almacenar cantidades masivas de datos en un clúster de equipos para su uso en análisis de Big Data, aprendizaje automático, minería de datos y otras aplicaciones basadas en datos que procesan datos estructurados y no estructurados. Kafka se utiliza a menudo para crear una canalización de datos de transmisión en tiempo real a un clúster de Hadoop.
Cree, modernice y gestione aplicaciones de forma segura en cualquier nube, con confianza.
Desde sus flujos de trabajo de negocios hasta sus operaciones de TI, le ayudaremos con automatización basada en IA.
Conecte aplicaciones, servicios y datos con IBM Cloud Pak for Integration, la plataforma de integración más completa del mercado.