Apache Kafka - Fundamentos

Antes de profundizar en el Kafka, debe conocer las principales terminologías como temas, corredores, productores y consumidores. El siguiente diagrama ilustra las terminologías principales y la tabla describe los componentes del diagrama en detalle.

En el diagrama anterior, un tema se configura en tres particiones. La partición 1 tiene dos factores de compensación 0 y 1. La partición 2 tiene cuatro factores de compensación 0, 1, 2 y 3. La partición 3 tiene un factor de compensación 0. La identificación de la réplica es la misma que la del servidor que la aloja.

Supongamos que, si el factor de replicación del tema se establece en 3, Kafka creará 3 réplicas idénticas de cada partición y las colocará en el clúster para que estén disponibles para todas sus operaciones. Para equilibrar una carga en el clúster, cada corredor almacena una o más de esas particiones. Varios productores y consumidores pueden publicar y recuperar mensajes al mismo tiempo.

S. No Componentes y descripción
1

Topics

Un flujo de mensajes que pertenecen a una categoría en particular se denomina tema. Los datos se almacenan en temas.

Los temas se dividen en particiones. Para cada tema, Kafka mantiene un mínimo de una partición. Cada una de estas particiones contiene mensajes en una secuencia ordenada inmutable. Una partición se implementa como un conjunto de archivos de segmentos de igual tamaño.

2

Partition

Los temas pueden tener muchas particiones, por lo que pueden manejar una cantidad arbitraria de datos.

3

Partition offset

Cada mensaje particionado tiene una identificación de secuencia única llamada como compensación .

4

Replicas of partition

Las réplicas no son más que copias de seguridad de una partición. Las réplicas nunca son datos de lectura o escritura. Se utilizan para evitar la pérdida de datos.

5

Brokers

  • Los corredores son un sistema simple responsable de mantener los datos publicados. Cada corredor puede tener cero o más particiones por tema. Suponga que si hay N particiones en un tema y N número de intermediarios, cada intermediario tendrá una partición.

  • Suponga que si hay N particiones en un tema y más de N intermediarios (n + m), el primer intermediario N tendrá una partición y el siguiente intermediario M no tendrá ninguna partición para ese tema en particular.

  • Suponga que si hay N particiones en un tema y menos de N intermediarios (nm), cada intermediario tendrá una o más particiones compartidas entre ellos. Este escenario no se recomienda debido a la distribución de carga desigual entre el corredor.

6

Kafka Cluster

El hecho de que Kafka tenga más de un corredor se denomina grupo de Kafka. Un clúster de Kafka se puede expandir sin tiempo de inactividad. Estos clústeres se utilizan para administrar la persistencia y replicación de los datos de los mensajes.

7

Producers

Los productores son los editores de mensajes sobre uno o más temas de Kafka. Los productores envían datos a los corredores de Kafka. Cada vez que un productor publica un mensaje para un corredor, el corredor simplemente agrega el mensaje al último archivo de segmento. En realidad, el mensaje se agregará a una partición. El productor también puede enviar mensajes a una partición de su elección.

8

Consumers

Los consumidores leen datos de los corredores. Los consumidores se suscriben a uno o más temas y consumen los mensajes publicados extrayendo datos de los corredores.

9

Leader

Líder es el nodo responsable de todas las lecturas y escrituras para la partición dada. Cada partición tiene un servidor que actúa como líder.

10

Follower

El nodo que sigue las instrucciones del líder se llama seguidor. Si el líder falla, uno de los seguidores se convertirá automáticamente en el nuevo líder. Un seguidor actúa como consumidor normal, extrae mensajes y actualiza su propio almacén de datos.