Kafka y colas de mensajes

      No hay comentarios en Kafka y colas de mensajes

¿Quieres entender por qué Kafka está ganando tanta tracción y los gerentes de contratación buscan personas con esta habilidad?

Bueno, escribí este artículo para ayudar a entender un poco Kafka, pero también explico las colas de mensajes en general primero, para construir la base para explicar Kafka.

Affiliated Ad

¿Qué es una cola de mensajes?

El propósito de una cola de mensajes es ayudar a entregar comunicaciones (o mensajes) de manera confiable. Si buscas en Google «qué es una cola de mensajes», obtendrás una respuesta como:

Las colas de mensajes proporcionan un protocolo de comunicaciones asincrónicas, lo que significa que el remitente y el receptor del mensaje no necesitan interactuar con la cola de mensajes al mismo tiempo.

Pero creo que puedes explicar esto de manera aún más simple. Puede pensar en una cola de mensajes como un apartado de correos. El cartero puede entregar un mensaje allí en cualquier momento y puede seguir colocándolos allí hasta que usted vaya a recogerlos. Pueden acumularse o recuperarse inmediatamente.

En este ejemplo, el cartero es el «Editor» o «Productor» y cuando va a recibir correo, es el «Suscriptor» o el «Consumidor».

Así sería un diagrama de este sistema:

¿Por qué utilizar una cola de mensajes?

Bueno, hay muchas razones, pero básicamente la respuesta es que los sistemas del mundo real son mucho más grandes y más complicados que un simple sistema postal de un solo consumidor y un solo productor.

Es posible que tenga muchos consumidores del mismo mensaje, es posible que tenga que lidiar con la tolerancia a errores(¿qué pasa si algo se rompe mientras se procesa un mensaje?) O es posible que desee poder rastrear cuándo se entregan los mensajes.

Este sería un diagrama de cómo se verían realmente las cosas dentro de una aplicación de redes sociales que le permitiría cargar fotos. Un usuario carga una foto y se guarda en una base de datos, además de en una cola de mensajes. Varios consumidores usan esta notificación para saber que un usuario ha subido una nueva foto, pero finalmente aparecerá en las «notificaciones» de sus amigos.

Qué es Kafka

Entonces, con los conceptos básicos del «qué» y «por qué» de las colas de mensajes fuera del camino, ¿qué es Kafka?

La principal diferencia con Kafka es el almacenamiento, guarda los datos mediante un registro de confirmación. Kafka almacena los mensajes que le envía en Temas. Los consumidores pueden «reproducir» estos mensajes si lo desean. Normalmente, en las colas de mensajes, los mensajes se eliminan después de que los suscriptores hayan confirmado su recepción.

Otra cosa diferente acerca de Kafka es que los temas están ordenados (por fecha en que se agregaron). No todas las colas de mensajes garantizan esto.

Los servidores individuales de Kafka que almacenan mensajes se denominan «Brokers». Los corredores se utilizan normalmente en un clúster, lo que significa que muchos servidores están conectados entre sí para manejar una gran cantidad de datos y tráfico. Los temas se pueden desglosar en «Particiones», que se dividen entre los corredores.

Kafka le permite dividir fácilmente el trabajo de publicación y consumo de mensajes entre un grupo de corredores. Sería algo así:

¿Por qué Kafka es tan popular ahora?

Kafka se desarrolló originalmente en LinkedIn para manejar grandes cantidades de tráfico y proporcionar una plataforma para manejar fuentes de datos en tiempo real.

Kafka está diseñado para almacenar datos en lo que podría considerarse una naturaleza transaccional. Los grupos de consumidores realizan un seguimiento de dónde se encuentran mientras leen un tema para que varios consumidores puedan leer gran cantidad de datos del mismo tema mientras dividen el trabajo entre ellos. Si lo desea, puede leer cualquier tema existente desde el principio para obtener todos los mensajes que se enviaron.

Cosas de qué hablar cuando se trata de Kafka

En términos de evaluación de la experiencia de alguien con Kafka, hay un par de cosas sobre las que podría preguntar.

  • ¿Cuántas transacciones por segundo manejó su sistema?
  • ¿Cómo decidió cómo dimensionar su clúster?
  • ¿Por qué decidió ir con Kafka por algo más simple?
  • Puede preguntar cosas sobre la cantidad de temas, particiones, grupos de consumidores, etc.
  • ¿Qué desafíos encontró al implementar Kafka en su sistema?

Generalmente, hacer preguntas de «por qué» es una excelente manera de comprender realmente si una persona tenía poder para tomar decisiones, o si realmente entendía por qué estaba haciendo algo. Pero también puede ser útil hacer preguntas más específicas sobre la escala y los desafíos que se enfrentan en la implementación.

Resumen

Las colas de mensajes son una arquitectura común que se puede encontrar en el backend de muchos tipos de aplicaciones. Casi todas las aplicaciones importantes o el software de creación de empresas tendrán una cola de mensajes en algún lugar de su infraestructura una vez que alcancen un tamaño determinado.

Kafka se está adoptando en muchas organizaciones grandes debido a la capacidad de almacenar mensajes de datos de forma indefinida y manejar grandes cantidades de tráfico. Hay muchas otras características de Kafka que no mencioné (como el sistema de procesamiento de flujo), pero estos son los conceptos básicos y deberían ayudarlo a comprender un poco por qué la gente lo usa y para qué sirve.

Puedes leer el artículo original en inglés en: https://dev.to/ard/message-queues-and-kafka-explained-in-plain-english-550g

Deja un comentario

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