Apache Kafka - Fondamenti

Prima di entrare in profondità nel Kafka, è necessario conoscere le principali terminologie come argomenti, broker, produttori e consumatori. Il diagramma seguente illustra le terminologie principali e la tabella descrive in dettaglio i componenti del diagramma.

Nel diagramma sopra, un argomento è configurato in tre partizioni. La partizione 1 ha due fattori di offset 0 e 1. La partizione 2 ha quattro fattori di offset 0, 1, 2 e 3. La partizione 3 ha un fattore di offset 0. L'id della replica è uguale all'id del server che la ospita.

Supponiamo, se il fattore di replica dell'argomento è impostato su 3, Kafka creerà 3 repliche identiche di ciascuna partizione e le inserirà nel cluster per renderle disponibili per tutte le sue operazioni. Per bilanciare un carico nel cluster, ogni broker memorizza una o più di quelle partizioni. Più produttori e consumatori possono pubblicare e recuperare messaggi contemporaneamente.

S.No Componenti e descrizione
1

Topics

Un flusso di messaggi appartenenti a una particolare categoria è chiamato argomento. I dati vengono archiviati in argomenti.

Gli argomenti sono suddivisi in partizioni. Per ogni argomento, Kafka mantiene un minimo di una partizione. Ciascuna di queste partizioni contiene messaggi in una sequenza ordinata immutabile. Una partizione è implementata come un insieme di file di segmenti di uguale dimensione.

2

Partition

Gli argomenti possono avere molte partizioni, quindi può gestire una quantità arbitraria di dati.

3

Partition offset

Ogni messaggio partizionato ha un ID sequenza univoco chiamato offset .

4

Replicas of partition

Le repliche non sono altro che backup di una partizione. Le repliche non vengono mai letti o scritti dati. Sono utilizzati per prevenire la perdita di dati.

5

Brokers

  • I broker sono semplici sistemi responsabili del mantenimento dei dati pubblicati. Ogni broker può avere zero o più partizioni per argomento. Supponiamo che se ci sono N partizioni in un argomento e N numero di broker, ogni broker avrà una partizione.

  • Supponiamo che se ci sono N partizioni in un argomento e più di N broker (n + m), il primo N broker avrà una partizione e il successivo M broker non avrà alcuna partizione per quel particolare argomento.

  • Supponiamo che se ci sono N partizioni in un argomento e meno di N broker (nm), ogni broker avrà una o più partizioni condivise tra di loro. Questo scenario non è consigliato a causa di una distribuzione ineguale del carico tra i broker.

6

Kafka Cluster

Kafka ha più di un broker viene chiamato cluster Kafka. Un cluster Kafka può essere espanso senza tempi di inattività. Questi cluster vengono utilizzati per gestire la persistenza e la replica dei dati dei messaggi.

7

Producers

I produttori sono gli editori di messaggi su uno o più argomenti Kafka. I produttori inviano i dati ai broker Kafka. Ogni volta che un produttore pubblica un messaggio a un broker, il broker aggiunge semplicemente il messaggio all'ultimo file di segmento. In realtà, il messaggio verrà aggiunto a una partizione. Il produttore può anche inviare messaggi a una partizione di sua scelta.

8

Consumers

I consumatori leggono i dati dai broker. I consumatori si iscrivono a uno o più argomenti e utilizzano i messaggi pubblicati estraendo i dati dai broker.

9

Leader

Leader è il nodo responsabile di tutte le letture e scritture per la partizione data. Ogni partizione ha un server che funge da leader.

10

Follower

Il nodo che segue le istruzioni del leader è chiamato follower. Se il leader fallisce, uno dei follower diventerà automaticamente il nuovo leader. Un follower agisce come un normale consumatore, estrae i messaggi e aggiorna il proprio archivio dati.