Apache Kafka es una plataforma de procesamiento de flujos de código abierto desarrollada por la Apache Software Foundation. El objetivo del proyecto es proporcionar una plataforma unificada, de alto rendimiento y baja latencia para el manejo de datos en tiempo real. Su capa de almacenamiento es efectivamente una cola de mensajes pub/sub masivamente escalable diseñada como un registro de transacciones distribuido.
Kafka está escrito en Scala y Java. El proyecto comenzó en LinkedIn en 2010, y fue de código abierto a principios de 2012. Se convirtió en un proyecto Apache de alto nivel en julio de 2012. LinkedIn utiliza Kafka como una tubería de datos central para mover datos entre los sistemas internos y Hadoop para el análisis fuera de línea.
Kafka tiene una serie de casos de uso, tales como:
- Construir tuberías de datos en tiempo real que obtienen datos de manera confiable entre sistemas o aplicaciones
- Servir como un búfer para aplicaciones en tiempo real que requieren un alto rendimiento de datos
- Construir un sistema de mensajería pub / sub
Kafka es un sistema distribuido que se ejecuta en un clúster de servidores. Está diseñado para manejar un alto rendimiento y baja latencia, y para escalar horizontalmente.
¿Por qué Kafka es tan rápido?
Kafka está diseñado para un alto rendimiento y una baja latencia. Utiliza un modelo de colas de mensajes con un registro de confirmación que se almacena en el disco. El registro de confirmación se utiliza para proporcionar durabilidad, lo que significa que los mensajes no se pierden si el servidor se bloquea.
Kafka está diseñado para ser escalable, lo que significa que puede manejar un gran número de mensajes. También está diseñado para ser tolerante a los fallos, lo que significa que puede seguir funcionando incluso si uno o más servidores en el clúster se cae.
Kafka es rápido porque está diseñado para ser eficiente. Utiliza un algoritmo de compresión optimizado para la velocidad. También utiliza un modelo de cola de mensajes que le permite procesar los mensajes en paralelo.
¿Sigue LinkedIn utilizando Kafka?
Sí, LinkedIn sigue utilizando Kafka para diversos fines. Kafka se utiliza para todo, desde flujos de actividad y registros operativos hasta datos analíticos y métricas de aplicaciones. LinkedIn ha descubierto que Kafka es especialmente adecuado para manejar grandes volúmenes de datos con baja latencia. ¿Sigue LinkedIn utilizando Kafka? Sí, LinkedIn sigue utilizando Kafka para diversos fines. Kafka se utiliza para todo, desde flujos de actividad y registros operativos hasta datos analíticos y métricas de aplicaciones. LinkedIn ha descubierto que Kafka es especialmente adecuado para manejar grandes volúmenes de datos con baja latencia.
¿Puede Kafka transformar los datos? Sí, Kafka puede transformar datos. Puede hacerlo utilizando una biblioteca de procesamiento de flujos como Kafka Streams o Apache Flink. Estas bibliotecas permiten definir transformaciones en los flujos de datos, y Kafka las aplicará a medida que los datos fluyan. ¿Qué empresas utilizan Kafka? Muchas empresas utilizan Kafka por sus capacidades de alto rendimiento y baja latencia. Empresas como LinkedIn, Twitter, Netflix y Airbnb utilizan Kafka en producción.