IBM Cloud Docs
Apprendere i concetti di Apache Kafka

Apprendere i concetti di Apache Kafka

Apache Kafka è una piattaforma di streaming distribuita utilizzata da molte aziende per numerosi carichi di lavoro batch, nonché casi di utilizzo di integrazione dei dati in tempo reale e di streaming dei dati.

Diagramma dell'architetturaKafka.
The diagram shows a Kafka architecture.

Il seguente elenco definisce alcun concetti di Apache Kafka:

Broker

Apache Kafka è un sistema di messaggistica distribuita. Un cluster Kafka è costituito da un insieme di broker. Un cluster ha un minimo di tre broker.

Diagramma Broker.
Diagram that shows an example cluster with three brokers.

Messaggi

Un messaggio è un'unità di dati in Kafka. Ciascun messaggio è rappresentato come un record che si articola in due parti: chiave e valore. La chiave viene di solito usata per i dati relativi al messaggio e il valore è il corpo del messaggio. Kafka utilizza i termini record e messaggio in modo interscambiabile.

Argomenti e partizioni

Ogni argomento è un flusso di messaggi denominato. Un argomento è costituito da una o più partizioni. I messaggi di una partizione sono ordinati in base a un numero chiamato offset. Con più partizioni distribuite tra i broker, la scalabilità di un argomento aumenta.

Se un argomento ha più di una partizione, consente di eseguire il feed dei dati in parallelo per aumentare la velocità effettiva distribuendo le partizioni su tutto il cluster. Il numero di partizioni influenza anche il bilanciamento del carico di lavoro tra i consumatori.

Per ulteriori informazioni, vedi Leadership della partizione.

Schema dei temi e delle partizioni.
The diagram shows one topic with three partitions that are spread across three brokers.

Replica

Per migliorare la disponibilità, ogni argomento può essere replicato su più broker. Per ogni partizione, uno dei broker è il leader e gli altri broker sono i follower.

La replica funziona fintanto che i follower prelevano ripetutamente i messaggi dal leader.

Diagramma di replica.
The diagram shows a topic partition that is replicated across three brokers.

Repliche sincronizzate

Una replica follower che sta tenendo il passo con il leader della partizione è chiamata in-sync. Qualsiasi follower con una replica sincronizzata può diventare leader senza perdere alcun messaggio.

Se il leader della partizione non riesce, viene scelto un altro leader dai follower. Tutte le repliche devono essere generalmente sincronizzate. È accettabile che una replica non sia temporaneamente sincronizzata mentre è in fase di recupero dopo un malfunzionamento.

Diagramma in - sync - repliche.
The diagram shows a topic partition that is replicated across three brokers and staying in-sync across all replicas.

Produttori

Un produttore è un'applicazione client che pubblica messaggi su uno o più argomenti. Un produttore può eseguire pubblicazioni per uno o più argomenti e può, facoltativamente, scegliere la partizione che memorizza i dati.

È anche possibile configurare il produttore in modo che dia priorità alla velocità o all'affidabilità, scegliendo il livello di riconoscimento che il produttore riceve per i messaggi che pubblica.

Per ulteriori informazioni, consultare Produzione di messaggi.

Diagramma Produttori.
The diagram shows a producer publishing messages to one topic across three brokers.

Consumer

Un consumer è un'applicazione client che legge i messaggi da uno o più argomenti e li elabora. La differenza tra la posizione attuale di un consumatore e il messaggio più recente su una partizione è nota come offset lag.

Se il ritardo aumenta nel tempo, è segno che il consumatore non è in grado di tenere il passo. Nel breve periodo, questo non è un problema, ma alla fine il consumatore potrebbe perdere i messaggi se il periodo di conservazione viene superato.

Per ulteriori informazioni, consultare Utilizzo dei messaggi.

Diagramma Consumatori.
The diagram shows a consumer processing messages from one topic across three brokers.

Gruppi di consumer

Un gruppo di consumatori contiene uno o più consumatori che lavorano insieme per elaborare i messaggi di un argomento. I messaggi di una singola partizione vengono elaborati da un consumer in ciascun gruppo.

In qualsiasi momento, ciascuna partizione viene assegnata ad un solo consumatore del gruppo. Questa assegnazione garantisce che i messaggi di ogni partizione vengano elaborati in ordine.

Se in un gruppo esistono più partizioni che consumatori, alcuni consumatori hanno più partizioni. Se esistono più consumatori che partizioni, alcuni consumatori non hanno partizioni.

Diagramma dei gruppi di consumatori.
The diagram shows a consumer processing messages from one topic across three brokers.

Ulteriori informazioni

Per ulteriori informazioni, vedi la documentazione diApache Kafka.