[Kafka de big data] 1. Kafka define la cola de mensajes y la infraestructura

1 definición

Definición tradicional de Kafka : Kafka es una cola de mensajes distribuida (Message Queue) basada en el modo de publicación /suscripción , que se utiliza principalmente en el campo del procesamiento en tiempo real de big data.

Publicar/suscribir : El editor del mensaje no envía el mensaje directamente a un suscriptor específico, sino que divide el mensaje publicado en diferentes categorías , y el suscriptor solo recibe el mensaje de su interés .

La última definición de Kafka : Kafka es una plataforma de transmisión de eventos distribuidos de código abierto (Plataforma de transmisión de eventos), utilizada por miles de empresas para canalizaciones de datos de alto rendimiento, análisis de flujo, integración de datos y aplicaciones de misión crítica .
inserte la descripción de la imagen aquí

cola de 2 mensajes

  Los productos de cola de mensajes más comunes en las empresas incluyen principalmente Kafka, ActiveMQ, RabbitMQ, RocketMQ, etc. En escenarios de big data, Kafka se utiliza principalmente como cola de mensajes.

2.1 Escenarios de aplicación de colas de mensajes tradicionales

  Los principales escenarios de aplicación de las colas de mensajes tradicionales incluyen: almacenamiento en caché/eliminación de picos, desacoplamiento y comunicación asincrónica.

2.1.1 Almacenamiento en búfer/raspado

  Eliminación de caché/picos: ayuda a controlar y optimizar la velocidad del flujo de datos que pasan por el sistema y resuelve la inconsistencia en la velocidad de procesamiento de los mensajes de producción y consumo.
inserte la descripción de la imagen aquí

2.1.2 Desacoplamiento

  Desacoplamiento: permite la extensión o modificación independiente de los procesos en ambos lados, siempre que se adhieran a las mismas restricciones de interfaz. La fuente de datos primero escribe en la cola de mensajes y el destino solo necesita sacar el mensaje de la cola de mensajes. Reduzca muchos costos de desarrollo y juegue un papel de desacoplamiento.
inserte la descripción de la imagen aquí

2.1.3 Comunicación asíncrona

  Comunicación asíncrona: permite a los usuarios poner un mensaje en la cola, pero no procesarlo inmediatamente, y luego procesarlo cuando sea necesario.
inserte la descripción de la imagen aquí

2.2 Dos modos de cola de mensajes

2.2.1 Modo punto a punto

El productor envía los datos lote por lote a la cola de mensajes.
El consumidor extrae activamente los datos y regresa para confirmar la recepción y eliminar el mensaje después de recibir el mensaje.
Solo puede haber un tema en la cola.
inserte la descripción de la imagen aquí

2.2.2 Modo de publicación/suscripción

Puede haber múltiples temas (navegación, me gusta, favoritos, comentarios, etc.).
Los consumidores no borran los datos después de consumirlos.
Cada consumidor es independiente y puede consumir datos.
inserte la descripción de la imagen aquí

3 infraestructura Kafka

1. Para facilitar la expansión y mejorar el rendimiento, un tema se divide en varias particiones.
2. Con el diseño de la partición se propone el concepto de grupo de consumidores, y cada consumidor del grupo consume en paralelo.
3. Para mejorar la disponibilidad, agregue varias copias para cada partición, similar a NameNode HA.
4. ZK registra quién es el líder Después de Kafka 2.8.0, también se puede configurar para que no use ZK.
inserte la descripción de la imagen aquí
(1) Productor : el productor de mensajes es el cliente que envía mensajes al agente de Kafka.
(2) Consumidor : Consumidor de mensajes, el cliente que obtiene mensajes del agente de Kafka. Los datos de una partición solo pueden ser consumidos por un consumidor, y solo los datos del Líder pueden ser procesados.
(3) Grupo de consumidores (CG) : El grupo de consumidores consta de múltiples consumidores. Cada consumidor en un grupo de consumidores es responsable de consumir datos de diferentes particiones, y una partición solo puede ser consumida por un consumidor en el grupo; los grupos de consumidores no se afectan entre sí. Todos los consumidores pertenecen a un grupo de consumidores, es decir, un grupo de consumidores es un suscriptor lógico.
(4) Agente : un servidor Kafka es un agente (es decir, un host). Un clúster consta de varios intermediarios. Un corredor puede acomodar múltiples temas.
(5) Tema : Puede entenderse como una cola para almacenar datos, y tanto los productores como los consumidores están orientados a un tema.
(6)Partición : para lograr la escalabilidad, un tema muy grande se puede distribuir a varios intermediarios (es decir, servidores), un tema se puede dividir en varias particiones y cada partición es una cola ordenada .
(7) Réplica : una copia. Cada partición de un tema tiene varias copias, un Líder y varios Seguidores.
(8) Líder : el "maestro" de varias copias de cada partición , el objeto al que el productor envía datos y el objeto al que el consumidor consume datos son todos líderes.
(9) Seguidor : El "esclavo" en múltiples copias de cada partición , sincroniza los datos del líder en tiempo real y mantiene la sincronización con los datos del líder. Cuando el Líder falla, un Seguidor se convierte en el nuevo Líder.
(10) Zookeeper : registre el estado de ejecución de los nodos del servidor (es decir, qué nodos están en línea y cuáles están funcionando) y registre quién es el líder de cada partición.

Supongo que te gusta

Origin blog.csdn.net/qq_18625571/article/details/132048479
Recomendado
Clasificación