Hola, me llamo Luis y para hoy les traigo este nuevo tutorial.
La vida es una corriente de eventos. En un mundo que produce y depende de datos, existía la necesidad de una plataforma para manejar un flujo continuo de datos, Kafka es una plataforma de transmisión que le permite publicar y suscribirse a un flujo de datos, almacenarlos y procesarlos.
Kafka tiene una serie de diferencias fundamentales con los sistemas de mensajería tradicionales que hacen. Se ejecuta como un clúster y puede escalar para manejar todas las aplicaciones en
incluso las empresas más masivas.
Cada empresa funciona con datos, cada aplicación crea datos, cada byte de datos tiene una historia que contar, algo de importancia que informará lo siguiente que se debe hacer.
Antes de echar un vistazo a las partes iniciales del sistema Kafka, hablemos de la publicar / suscribir concepto de mensajería.
La mensajería es un patrón que se caracteriza porque el remitente (editor) de un dato (mensaje) no lo dirige específicamente a un receptor. En cambio, el editor clasifica el mensaje de alguna manera y ese receptor (suscriptor) se suscribe para recibir ciertas clases de mensajes. Los sistemas de publicación / suscripción suelen tener un intermediario, un punto central donde se publican los mensajes, para facilitar esto.
La necesidad de tener un sistema de suscripción de mensajería distribuida en lugar de utilizar una conexión punto a punto y un trabajo duplicado para manejar todos los eventos provenientes de diferentes partes de los sistemas de la Organización, hizo de Kafka un gran enfoque para manejar los datos masivos producidos desde cada solicitud.
Índice
La unidad de datos:
La unidad de datos dentro de Kafka se llama mensaje, Un mensaje es simplemente una matriz de bytes. Un mensaje puede tener un bit opcional de metadatos, que se conoce como un llave. La clave también es una matriz de bytes y, al igual que con el mensaje, las claves se utilizan cuando los mensajes deben escribirse en particiones de una manera más controlada. El esquema más simple de este tipo es generar una hash de la clavey luego seleccione el número de partición para ese mensaje tomando el resultado del hash.
Por eficiencia, mensajes están escritos en Kafka en lotes. Un lote es solo un colección de mensajes, todos los cuales se producen al mismo tema y dividir
Temas y particiones
Los mensajes en Kafka se clasifican en temas, Los temas también se dividen en varios particiones.
Una particion es un solo registro. Los mensajes se escriben en él de forma de solo anexión y se leen en orden de principio a fin. Las particiones son también la forma en que Kafka proporciona redundancia y escalabilidad. Cada partición se puede alojar en un servidor diferente, lo que significa que un solo tema se puede escalar horizontalmente en varios servidores.
Una partición es un grupo de segmentos.
Un segmento: es un archivo individual en el disco del Broker
Una secuencia: un solo tema de datos, independientemente del número de particiones
Partes del sistema Kafka
1. Productor
Las aplicaciones y sistemas que producen o envían datos a Kafka, recibirán la señal «ack» o «nack» del sistema kafka.
los productor no le importa en qué partición se escribe un mensaje específico y equilibrará los mensajes en todas las particiones de un tema de manera uniforme.
«Ack»: reconocido; el sistema kafka pudo recibir los datos.
«Nack»: reconocimiento negativo; el sistema kafka no pudo recibir los datos por alguna razón, la mayoría de los productores intentarán reenviar los datos nuevamente.
2. Consumidores
Leer mensajes.
El consumidor se suscribe a uno o más temas y lee los mensajes en el orden en que fueron producidos. El consumidor realiza un seguimiento de los mensajes que ya ha consumido al realizar un seguimiento del desplazamiento de mensajes
Desplazamiento: un valor entero que aumenta continuamente, que Kafka agrega a cada mensaje a medida que se produce
Los Consumidores trabajan como parte de un grupo de consumidores, que es uno o más consumidores que trabajan juntos para consumir un tema. El grupo asegura que cada partición solo sea consumida por un miembro
3. Brokers y Clusters
Un solo servidor Kafka se llama corredor. los corredor recibe mensajes de productores, asigna compensaciones a ellos, y envía los mensajes al almacenamiento en disco. También sirve consumidores, respondiendo a las solicitudes de recuperación de particiones y responder con los mensajes que se han enviado al disco.
Kafka corredores están diseñados para funcionar como parte de un clúster. Dentro un clúster de corredores, un corredor también funcionará como el controlador de clúster (elegido automáticamente entre los miembros activos del clúster).
El controlador es responsable de las operaciones administrativas, incluida la asignación de particiones a los intermediarios y la supervisión de las fallas de los intermediarios.
Una partición es propiedad de un solo corredor en el racimo, y ese corredor se llama líder de la partición. Se puede asignar una partición a varios intermediarios, lo que dará como resultado que la partición se replique.
Consumidores y Productores están desacoplados, lo que significa que los consumidores lentos no impactan a los productores, agregando más o las fallas de los consumidores sin impacto de los productores.
Por qué Kafka
Múltiples productores
Kafka puede manejar sin problemas varios productores, por lo que Kafka puede agregar datos de muchos sistemas frontend y hacerlos consistentes.
Múltiples consumidores
Kafka está diseñado para que varios consumidores lean cualquier flujo de mensajes sin interferir entre sí.
Retención basada en disco
Los mensajes se envían al disco y se almacenan con configurables reglas de retención. Estas opciones se pueden seleccionar por tema, lo que permite que diferentes flujos de mensajes tengan diferentes cantidades de retención según las necesidades del consumidor.
Escalable
La escalabilidad flexible de Kafka facilita el manejo de cualquier cantidad de datos. Las expansiones se pueden realizar mientras el clúster está en línea, sin impacto en la disponibilidad del sistema en su conjunto. Esto también significa que un grupo de varios corredores puede manejar la falla de un corredor individual y seguir atendiendo a los clientes.
Gracias por leer.
Añadir comentario