Compartir tecnología

Deducción del diagrama de componentes básicos de Kafka

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Agente controlador

Insertar descripción de la imagen aquí

Hay un Controller Broker en el clúster de Kafka, que es responsable de la gestión y coordinación de los metadatos.

Kafka utiliza Zookeeper como herramienta de almacenamiento y gestión de metadatos del clúster. Zookeeper guarda la información de estado del clúster, incluida toda la información del tema, la partición, el líder y la réplica.

Cuando el estado del clúster cambia, Controller Broker escribirá la información del cambio en Zookeeper.

Cuando falla el Controller Broker actual, otros Brokers en el clúster de Kafka detectarán esta situación y realizarán elecciones a través de Zookeeper.

Después de que un Broker sea elegido exitosamente como nuevo Broker Controlador, leerá los metadatos del clúster más recientes de Zookeeper.

Mecanismo de garantía

  • Metadatos persistentes: Zookeeper almacena de forma persistente los metadatos del clúster, lo que garantiza que se pueda obtener la información de estado más reciente en cualquier momento.
  • mecanismo de latido del corazón: La conexión entre Broker y Zookeeper se mantiene a través del mecanismo de latido para detectar rápidamente fallas de Controller Broker.
  • mecanismo electoral: A través del mecanismo de elección de Zookeeper, se puede elegir rápidamente un nuevo Controller Broker y se pueden sincronizar metadatos desde Zookeeper.

2. Arquitectura de componentes

Insertar descripción de la imagen aquí

1. Administrador de registros

LogManagerPrincipalmente responsable de gestionar el almacenamiento y recuperación de registros de Kafka (log).

Por ejemplo: el productor envía el mensaje al Leader Broker1 de Partition0.LogManagerEscriba el mensaje en el archivo de registro de Partition0 en Broker1.

2. Administrador de replicación

ReplicationManagerPrincipalmente responsable de gestionar la replicación y sincronización de los datos de la partición.

La sincronización entre el líder y el seguidor de cada partición se realiza de forma independiente. Es decir, cada partición tiene su propio proceso de sincronización y no depende de otras particiones.

Aunque el proceso de sincronización de cada partición es independiente, cada Broker iniciará los subprocesos de replicación correspondientes para cada partición que administra (ya sea Líder o Seguidor), y estos subprocesos son responsables de manejar tareas de sincronización específicas.

Por ejemplo:ReplicationManagerEnvíe los mensajes recién escritos en Broker1 al Follower Broker2 y Broker3 de Partition0.ReplicationManagerLas solicitudes de replicación recibidas del Broker1 se procesan en Broker2 y Broker3, escribiendo mensajes en sus respectivos archivos de registro.

3. Servidor de sockets

SocketServer Es un componente de Kafka Broker y es responsable de manejar las conexiones de red y las operaciones de E/S. Es responsable de aceptar solicitudes de conexión de clientes y otros Brokers, y de asignar un hilo a cada conexión para su procesamiento.

4. Servidor de red

NetworkServer Es una parte central del marco de comunicación de red de Kafka y es responsable de administrar y programar solicitudes de red. Utiliza NIO (E/S sin bloqueo) para manejar conexiones de red altamente concurrentes.

5. Cliente ZK

Componente que se comunica con Zookeeper.