logo

Temas de Kafka

En la sección anterior, hicimos una breve introducción sobre Apache Kafka, el sistema de mensajería y el proceso de transmisión. Aquí discutiremos los conceptos básicos y el papel de Kafka.

Temas

Generalmente, un tema se refiere a un título particular o al nombre dado a algunas ideas específicas interrelacionadas. En Kafka, la palabra tema se refiere a una categoría o un nombre común utilizado para almacenar y publicar un flujo particular de datos. Básicamente, los temas en Kafka son similares a las tablas de la base de datos, pero no contienen todas las restricciones. En Kafka, podemos crear tantos temas como queramos. Se identifica por su nombre, que depende de la elección del usuario. Un productor publica datos sobre los temas y un consumidor lee esos datos del tema suscribiéndose.

Particiones

Un tema se divide en varias partes que se conocen como particiones del tema. Estas particiones están separadas en un orden. El contenido de los datos se almacena en las particiones dentro del tema. Por lo tanto, al crear un tema, debemos especificar el número de particiones (el número es arbitrario y se puede cambiar más adelante). Cada mensaje se almacena en particiones con una identificación incremental conocida como valor de compensación. el orden de la valor de compensación está garantizado dentro de la partición únicamente y no a través de la partición. Los desplazamientos de una partición son infinitos.

Nota:Los datos una vez escritos en una partición nunca se pueden cambiar. Es inmutable. El valor de compensación siempre permanece en un estado incremental, nunca vuelve a un espacio vacío. Además, los datos se mantienen en una partición sólo por un tiempo limitado.

Veamos un ejemplo para entender un tema con sus particiones.

Temas de Kafka

Supongamos que un tema contiene tres particiones 0,1 y 2. Cada partición tiene diferentes números de desplazamiento. Los datos se distribuyen entre cada desplazamiento en cada partición donde los datos en el desplazamiento 1 de la Partición 0 no tienen ninguna relación con los datos en el desplazamiento 1 de la Partición1. Pero los datos en el desplazamiento 1 de la Partición 0 están interrelacionados con los datos contenidos en el desplazamiento 2 de la Partición 0.

Corredores

Aquí viene el papel de Apache Kafka.

Un clúster de Kafka se compone de uno o más servidores que se conocen como brokers o brokers Kafka. Un corredor es un contenedor que contiene varios temas con sus múltiples particiones. Los intermediarios del clúster se identifican únicamente mediante una identificación entera. Los corredores Kafka también son conocidos como Corredores de arranque porque la conexión con cualquier intermediario significa conexión con todo el clúster. Aunque un corredor no contiene datos completos, cada corredor del clúster conoce todos los demás corredores, particiones y temas.

Temas de Kafka

Así es como se ve un corredor en la figura que contiene un tema con n particiones.

Ejemplo: corredores y temas

Supongamos que un clúster de Kafka consta de tres corredores, a saber, el Broker 1, el Broker 2 y el Broker 3.

Temas de Kafka

Cada corredor tiene un tema, a saber, Topic-x con tres particiones 0,1 y 2. Recuerde, todas las particiones no pertenecen a un solo corredor, siempre se distribuye entre cada corredor (depende de la cantidad). El Broker 1 y el Broker 2 contienen otro tema-y que tiene dos particiones 0 y 1. Por lo tanto, el Broker 3 no contiene ningún dato del Tema-y. También se concluye que nunca existe relación entre el número de corredor y el número de partición.