Introducción a los conceptos básicos de Kafka

¿Qué es kafka?

Kafka es un sistema de mensajería de publicación y suscripción distribuido de alto rendimiento Es un servicio de almacenamiento de registros distribuido distribuido, particionado y confiable.
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Varios conceptos de Kafka

Tema

En Kafka, los mensajes se pueden clasificar. Cada tipo de mensaje se denomina tema. Los consumidores pueden procesar diferentes temas de manera diferente.

Corredor

Cada Broker es una instancia de servicio de Kafka. Varios Brokers forman un clúster de Kafka. Los mensajes publicados por los productores se almacenarán en Broker y los consumidores extraerán mensajes de Broker para su consumo.
En el clúster de agentes, habrá un líder (líder del controlador) responsable de administrar el estado de las particiones y réplicas en todo el clúster y de elegir al líder de la partición.

Productor

Responsable de producir mensajes y enviarlos a Broker.

Consumidor (productor)

Responsable de consumir mensajes de tema en Broker, cada instancia de consumidor pertenece a un grupo de consumidores Ver más introducción

Dividir

La partición es una parte más característica de Kafka. Un tema se puede dividir en varias particiones. Cada partición es una cola ordenada. Cada mensaje en la partición tiene un desplazamiento ordenado (Offest), el mismo consumidor En un grupo, solo una instancia de consumidor puede consumir mensajes de una partición.
La partición se puede considerar como una cola ordenada, los datos dentro se almacenan en el disco duro, adjunto. La función de la partición es proporcionar expansión distribuida. Un tema puede tener muchas particiones y varias particiones pueden procesar datos en paralelo, por lo que se puede procesar una cantidad considerable de datos. Solo el líder de la partición realizará operaciones de lectura y escritura, y el siguiente solo realiza la replicación y el cliente no lo sabe.

ISR

El líder rastreará y mantendrá el estado de retraso de todos los seguidores en el ISR. Si el retraso es demasiado (el retraso de tiempo replica.lag.time.max.ms es configurable), el líder eliminará la réplica del ISR. La réplica del ISR eliminado se ha puesto al día con el líder. Como se muestra en la figura siguiente, el líder no se confirmará después de escribir los datos. Solo se confirmará después de que todos los seguidores en la lista ISR estén sincronizados. Eliminar el seguidor rezagado del ISR es principalmente para evitar la demora en la escritura de mensajes. El ISR está configurado principalmente para reelegir al líder de la partición de la lista de ISR después de que el corredor se cae.

2 tipos de líderes

A partir de los conceptos básicos anteriores, podemos ver que hay dos tipos de líderes en el grupo de Kafka, uno es el líder del corredor o el líder controlador, y el otro es el líder de la partición. A continuación se describe el proceso general de elección de los dos tipos de líderes.

Líder controlador

Cuando se inicia el intermediario, se creará el objeto KafkaController, pero solo puede haber un líder en el clúster para proporcionar servicios externos. El KafkaController en cada nodo creará un nodo temporal en la ruta especificada del guardián del zoológico, y solo el primer nodo creado correctamente KafkaController puede convertirse en líder y el resto en seguidores. Cuando el líder falla, todos los seguidores serán notificados y competirán nuevamente para crear nodos debajo del camino para elegir un nuevo líder.

Líder de partición

Ejecutado por el líder del controlador

Leer todos los conjuntos de ISR (réplicas sincronizadas) de la partición actual de Zookeeper
Llamar al algoritmo de selección de partición configurado para seleccionar el líder de la partición

¿Qué son las particiones y las réplicas?

Déjame darte un ejemplo, todavía hay tres corredores.
El tema es un concepto lógico. Por ejemplo, si tiene 100 mensajes, el tema se llama "A" y A tiene dos particiones PA y PB, lo que significa que PA almacena 50 y PB almacena 50, respectivamente, en broker1 y broker2, por lo que ¿Se ha roto la noticia de "y no se colocará en una sola máquina? ¿Esto reduce la carga en una sola máquina?"

A continuación, si broker1 está inactivo, todas las particiones también están inactivas y sus 50 mensajes se pierden. Para no perder mensajes, agrega una copia de la partición, de modo que PA y PB sincronizan 50 mensajes en broker2 y broker3 respectivamente. Cuando broker1 vuelve a caer, el líder de la partición corta a la partición de réplica en broker3 y el mensaje sigue ahí.

Por lo tanto, realice particiones para dividir sus mensajes, lo que le permite equilibrar la carga de mensajes grandes entre los corredores, y particiones de réplicas para sincronizar los mensajes y garantizar su confiabilidad.

Supongo que te gusta

Origin blog.csdn.net/DreamsArchitects/article/details/108578100
Recomendado
Clasificación