Apache Kafka: sistema de mensajería distribuida de próxima generación



Apache Kafka proporciona sistemas de mensajería escalables y de alto rendimiento, lo que lo hace popular en análisis en tiempo real. Descubra cómo un tutorial de Apache kafka puede ayudarle

En el mundo de hoy, los datos son el ingrediente principal de las aplicaciones de Internet y normalmente abarca lo siguiente:





  • Visitas a la página y clics
  • Actividades del usuario
  • Eventos correspondientes a inicios de sesión
  • Actividades de redes sociales como me gusta, acciones y comentarios
  • Métricas específicas de la aplicación (por ejemplo, registros, tiempo de carga de la página, rendimiento, etc.)

Esta los datos se pueden utilizar para ejecutar análisis en tiempo real con diversos fines, algunos de los cuales son:

  • Entrega de anuncios
  • Seguimiento de comportamientos anormales de los usuarios
  • Visualización de búsqueda basada en relevancia
  • Mostrando recomendaciones basadas en actividades anteriores

Problema: La recopilación de todos los datos no es fácil, ya que los datos se generan a partir de varias fuentes en diferentes formatos.



Solución: Una de las formas de solucionar este problema es utilizar un sistema de mensajería. Los sistemas de mensajería proporcionan una integración perfecta entre aplicaciones distribuidas con la ayuda de mensajes.

apache-kafka-next-generation-distributed-messaging-system

Apache Kafka :



Apache Kafka es un sistema distribuido de mensajería de publicación y suscripción que se desarrolló originalmente en LinkedIn y más tarde se convirtió en parte del proyecto Apache. Kafka es rápido, ágil, escalable y distribuido por diseño.

Arquitectura y terminología de Kafka:

Tema: Un flujo de mensajes que pertenecen a una categoría particular se llama tema.

Productor: Un productor puede ser cualquier aplicación que pueda publicar mensajes en un tema.

Consumidor: Un consumidor puede ser cualquier aplicación que se suscriba a temas y consuma los mensajes

Corredor: El clúster de Kafka es un conjunto de servidores, cada uno de los cuales se denomina broker.

Kafka es escalable y permite la creación de múltiples tipos de clústeres.

  • Clúster de agente único de nodo único
  • Clúster de agente múltiple de nodo único
  • Clúster de múltiples agentes de múltiples nodos

Agente único de nodo único

¿Cuál es el papel de ZooKeeper?

Cada corredor de Kafka se coordina con otros corredores de Kafka utilizando ZooKeeper. El servicio ZooKeeper notifica a los productores y consumidores sobre la presencia de nuevos intermediarios o la falla del intermediario en el sistema Kafka.

Agentes múltiples de nodo único

Múltiples nodos Múltiples corredores

Kafka @ LinkedIn

El suministro de noticias de LinkedIn funciona con Kafka

Las recomendaciones de LinkedIn funcionan con Kafka

Las notificaciones de LinkedIn funcionan con Kafka

Nota: Aparte de esto, LinkedIn usa Kafka para muchas otras tareas como monitoreo de registros, métricas de rendimiento, mejora de búsqueda, entre otras.

cómo declarar una matriz dinámica en java

¿Quién más usa Kafka?

DataSift: DataSift utiliza Kafka como recopilador de eventos de monitoreo y para rastrear el consumo de flujos de datos de los usuarios en tiempo real

Wooga: Wooga usa Kafka para agregar y procesar datos de seguimiento de todos sus juegos de Facebook (alojados en varios proveedores) en una ubicación central.

Spongecell: Spongecell usa Kafka para ejecutar todo su proceso de análisis y monitoreo que impulsa aplicaciones ETL y en tiempo real

Loggly: Loggly es la administración de registros basada en la nube más popular del mundo. Utiliza Kafka para la recopilación de registros.

Estudio comparativo: Kafka frente a ActiveMQ frente a RabbitMQ

Kafka tiene un formato de almacenamiento más eficiente. En promedio, cada mensaje tiene una sobrecarga de 9 bytes en Kafka, frente a 144 bytes en ActiveMQ.

Tanto en ActiveMQ como en RabbitMQ, los corredores mantienen el estado de entrega de cada mensaje escribiendo en el disco, pero en el caso de Kafka, no hay escritura en el disco, lo que lo hace más rápido.

Con la amplia adopción de Kafka en producción, parece ser una solución prometedora para resolver problemas del mundo real. La capacitación de Apache Kafka puede ayudarlo a adelantarse a sus pares en una carrera de análisis en tiempo real. Comience con un tutorial de Apache Kafka Aquí .

Tienes una pregunta para nosotros? Menciónalo en la sección de comentarios y nos comunicaremos contigo.

Artículos Relacionados:

Lo que necesita para una carrera en análisis en tiempo real