¿EN QUE CASOS PODEMOS USAR KAFKA?

A continuación, se incluye una descripción de algunos de los casos de uso populares de Apache Kafka®. 

Mensajería

Kafka funciona bien como reemplazo de un corredor de mensajes más tradicional. Los intermediarios de mensajes se utilizan por diversas razones (para desacoplar el procesamiento de los productores de datos, para almacenar mensajes sin procesar, etc.). En comparación con la mayoría de los sistemas de mensajería, Kafka tiene un mejor rendimiento, particionamiento integrado, replicación y tolerancia a fallas, lo que lo convierte en una buena solución para aplicaciones de procesamiento de mensajes a gran escala.

En nuestra experiencia, los usos de mensajería a menudo son comparativamente de bajo rendimiento, pero pueden requerir una baja latencia de extremo a extremo y, a menudo, dependen de las sólidas garantías de durabilidad que ofrece Kafka.

En este dominio, Kafka es comparable a los sistemas de mensajería tradicionales como ActiveMQ o RabbitMQ .

Seguimiento de la actividad del sitio web

El caso de uso original de Kafka era poder reconstruir una canalización de seguimiento de la actividad del usuario como un conjunto de feeds de publicación y suscripción en tiempo real. Esto significa que la actividad del sitio (visitas a la página, búsquedas u otras acciones que pueden realizar los usuarios) se publica en temas centrales con un tema por tipo de actividad. Estos feeds están disponibles para suscripción para una variedad de casos de uso que incluyen procesamiento en tiempo real, monitoreo en tiempo real y carga en Hadoop o sistemas de almacenamiento de datos fuera de línea para procesamiento e informes fuera de línea.

El seguimiento de la actividad suele tener un volumen muy alto, ya que se generan muchos mensajes de actividad para cada vista de página de usuario.

Métrica

Kafka se utiliza a menudo para datos de seguimiento operativo. Esto implica agregar estadísticas de aplicaciones distribuidas para producir fuentes centralizadas de datos operativos.

Agregación de registros

Mucha gente usa Kafka como reemplazo de una solución de agregación de registros. La agregación de registros generalmente recopila archivos de registro físicos fuera de los servidores y los coloca en un lugar central (un servidor de archivos o tal vez HDFS) para su procesamiento. Kafka abstrae los detalles de los archivos y ofrece una abstracción más limpia de los datos de registro o eventos como un flujo de mensajes. Esto permite un procesamiento de latencia más baja y un soporte más fácil para múltiples fuentes de datos y consumo de datos distribuidos. En comparación con los sistemas centrados en registros como Scribe o Flume, Kafka ofrece un rendimiento igualmente bueno, mayores garantías de durabilidad debido a la replicación y una latencia de extremo a extremo mucho más baja.

Procesamiento de flujo

Muchos usuarios de Kafka procesan datos en tuberías de procesamiento que constan de múltiples etapas, donde los datos de entrada sin procesar se consumen de los temas de Kafka y luego se agregan, enriquecen o transforman en nuevos temas para su posterior consumo o procesamiento de seguimiento. Por ejemplo, una canalización de procesamiento para recomendar artículos de noticias podría rastrear el contenido del artículo desde los canales RSS y publicarlo en un tema de “artículos”; el procesamiento posterior podría normalizar o deduplicar este contenido y publicar el contenido del artículo limpiado en un nuevo tema; una etapa de procesamiento final podría intentar recomendar este contenido a los usuarios. Dichas canalizaciones de procesamiento crean gráficos de flujos de datos en tiempo real basados ​​en los temas individuales. A partir de 0.10.0.0, una biblioteca de procesamiento de transmisión ligera pero potente llamada Kafka Streams está disponible en Apache Kafka para realizar el procesamiento de datos como se describe anteriormente. Además de Kafka Streams, las herramientas alternativas de procesamiento de flujo de código abierto incluyen Apache Storm y Apache Samza .

Abastecimiento de eventos

El origen de eventos es un estilo de diseño de aplicaciones en el que los cambios de estado se registran como una secuencia de registros ordenada por tiempo. El soporte de Kafka para datos de registro almacenados de gran tamaño lo convierte en un excelente backend para una aplicación construida con este estilo.

Confirmar registro

Kafka puede servir como una especie de registro de compromiso externo para un sistema distribuido. El registro ayuda a replicar datos entre nodos y actúa como un mecanismo de resincronización para que los nodos fallidos restauren sus datos. La función de compactación de troncos de Kafka ayuda a respaldar este uso. En este uso, Kafka es similar al proyecto Apache BookKeeper .

FUENTE: https://kafka.apache.org/uses

En CJava sabemos que Kafka es una herramienta que puede potenciar tus desarrollos si lo conoces bien, es por eso que este 17 de Agosto hemos iniciado un taller de 24 horas académicas al que aun estas a tiempo de unirte