Tutorial Apache Kafka: Introduzione, Concetti, Flusso di lavoro, Strumenti, Applicazioni
Pubblicato: 2020-03-10Sommario
introduzione
Con la crescente popolarità di Kafka come sistema di messaggistica, molte aziende richiedono professionisti con una solida conoscenza delle abilità di Kafka, ed è qui che un Tutorial Apache Kafka torna utile. Un'enorme quantità di dati viene utilizzata nel regno dei Big Data che necessitano di un sistema di messaggistica per la raccolta e l'analisi dei dati.
Kafka è un sostituto efficiente del broker di messaggi convenzionale con un throughput migliorato, partizionamento e replica intrinseci e tolleranza agli errori incorporata, che lo rendono adatto per applicazioni di elaborazione dei messaggi su larga scala. Se stai cercando un Tutorial Apache Kafka , questo è l'articolo giusto per te.
Punti chiave di questo tutorial di Apache Kafka
- Concetto di sistemi di messaggistica
- Una breve introduzione ad Apache Kafka
- Concetti relativi al cluster Kafka e all'architettura Kafka
- Breve descrizione del flusso di lavoro di messaggistica Kafka
- Panoramica di importanti strumenti Kafka
- Casi d'uso e applicazioni di Apache Kafka
Ulteriori informazioni su: Tutorial di streaming Apache Spark per principianti
Una breve panoramica dei sistemi di messaggistica
La funzione principale di un sistema di messaggistica è quella di consentire il trasferimento dei dati da un'applicazione all'altra; il sistema garantisce che le applicazioni si concentrino solo sui dati senza bloccarsi durante il processo di condivisione e trasmissione dei dati. Esistono due tipi di sistemi di messaggistica:
1. Sistema di messaggistica punto a punto
In questo sistema, i produttori dei messaggi sono chiamati mittenti e quelli che consumano i messaggi sono destinatari. In questo dominio, i messaggi vengono scambiati tramite una destinazione nota come coda; i mittenti oi produttori producono i messaggi nella coda e i messaggi vengono consumati dai destinatari dalla coda.

Fonte
2. Sistema di messaggistica per la pubblicazione e l'iscrizione
In questo sistema, i produttori dei messaggi sono chiamati editori e quelli che consumano i messaggi sono abbonati. Tuttavia, in questo dominio, i messaggi vengono scambiati attraverso una destinazione nota come argomento. Un editore produce i messaggi per un argomento e dopo essersi abbonati a un argomento, gli abbonati consumano i messaggi dell'argomento. Questo sistema consente la diffusione dei messaggi (avendo più di un abbonato e ciascuno riceve una copia dei messaggi pubblicati su un determinato argomento).
Fonte
Apache Kafka – un'introduzione
Apache Kafka si basa su un sistema di messaggistica publish-subscribe (pub-sub). Nel sistema di messaggistica pub-sub, gli editori sono i produttori dei messaggi e gli abbonati sono i consumatori dei messaggi. In questo sistema, i consumatori possono consumare tutti i messaggi degli argomenti sottoscritti. Questo principio del sistema di messaggistica pub-sub è impiegato in Apache Kafka.
Inoltre, Apache Kafka utilizza il concetto di messaggistica distribuita, per cui vi è una coda di messaggi non sincrona tra il sistema di messaggistica e le applicazioni. Con una coda robusta in grado di gestire un grande volume di dati, Kafka consente di trasmettere messaggi da un endpoint all'altro ed è adatto al consumo di messaggi sia online che offline. Combinando affidabilità, scalabilità, durata e prestazioni ad alto rendimento, Apache Kafka è ideale per l'integrazione e la comunicazione tra unità di sistemi di dati su larga scala nel mondo reale.
Leggi anche: Idee per progetti Big Data
Fonte
Concetto di cluster Apache Kafka
Fonte
- Custode dello zoo di Kafka : gli intermediari in un cluster sono coordinati e gestiti dai guardiani dello zoo. Zookeeper informa i produttori e i consumatori della presenza di un nuovo broker o del fallimento di un broker nel sistema Kafka, nonché informa i consumatori del valore di compensazione. Produttori e consumatori coordinano le loro attività con un altro intermediario dopo aver ricevuto dal guardiano dello zoo.
- Broker Kafka: i broker Kafka sono sistemi responsabili del mantenimento dei dati pubblicati nei cluster Kafka con l'aiuto dei guardiani dello zoo. Un broker può avere zero o più partizioni per ogni argomento.
- Produttore Kafka: i messaggi su uno o più argomenti Kafka vengono pubblicati dal produttore e inviati ai broker, senza attendere il riconoscimento del broker.
- Consumatore Kafka: i consumatori estraggono i dati dai broker e consumano i messaggi già pubblicati da uno o più argomenti, inviano una richiesta pull non sincrona al broker per avere un buffer di byte pronto per il consumo e quindi forniscono un valore di offset per riavvolgere o saltare a qualsiasi punto di partizione.
Concetti fondamentali dell'architettura di Kafka
- Argomenti : è un canale logico verso il quale i messaggi vengono pubblicati dai produttori e dal quale i messaggi vengono ricevuti dai consumatori. Gli argomenti possono essere replicati (copiati) e partizionati (divisi). Un particolare tipo di messaggio viene pubblicato su un argomento specifico, con ogni argomento identificabile dal suo nome univoco.
- Partizioni di argomenti: nel cluster Kafka, gli argomenti sono divisi in partizioni e replicati tra i broker. Un produttore può aggiungere una chiave a un messaggio pubblicato e i messaggi con la stessa chiave finiscono nella stessa partizione. Un ID incrementale chiamato offset viene assegnato a ogni messaggio in una partizione e questi ID sono validi solo all'interno della partizione e non hanno alcun valore tra le partizioni di un argomento.
- Leader e replica: ogni broker Kafka dispone di alcune partizioni con ciascuna partizione, in quanto leader o replica (backup) dell'argomento. Il leader è responsabile non solo della lettura e della scrittura di un argomento, ma anche dell'aggiornamento delle repliche con nuovi dati. Se, in ogni caso, il leader fallisce, la replica può subentrare come nuovo leader.
Architettura di Apache Kafka
Fonte
Un Kafka con più di un broker è chiamato cluster Kafka. Quattro delle API principali saranno discusse in questo tutorial di Apache Kafka :
- API del produttore: l'API del produttore di Kafka consente la pubblicazione di un flusso di record da parte di un'applicazione su uno o più argomenti Kafka.
- API consumer: l'API consumer consente a un'applicazione di elaborare il flusso continuo di record prodotti su uno o più argomenti.
- Streams API: l'API streams consente a un'applicazione di consumare un flusso di input da uno o più argomenti e generare un flusso di output per uno o più argomenti di output, consentendo così all'applicazione di agire come un processore di flusso. Ciò modifica in modo efficiente i flussi di input nei flussi di output.
- API del connettore: l'API del connettore consente la creazione e l'esecuzione di produttori e consumatori riutilizzabili, consentendo così una connessione tra argomenti Kafka e sistemi di dati o applicazioni esistenti.
Flusso di lavoro del dominio di messaggistica editore-abbonato
- I produttori di Kafka inviano messaggi a un argomento a intervalli regolari.
- I broker Kafka garantiscono un'equa distribuzione dei messaggi all'interno delle partizioni archiviandoli nelle partizioni configurate per un determinato argomento.
- L'iscrizione a un argomento specifico viene effettuata dai consumatori Kafka. Una volta che il consumatore si è iscritto a un argomento, l'offset corrente dell'argomento viene offerto al consumatore e l'argomento viene salvato nell'insieme del guardiano dello zoo.
- Il consumatore richiede a Kafka nuovi messaggi a intervalli regolari.
- Kafka inoltra i messaggi ai consumatori immediatamente dopo averli ricevuti dai produttori.
- Il consumatore riceve il messaggio e lo elabora.
- Il broker Kafka riceve una conferma non appena il messaggio viene elaborato.
- Al ricevimento della conferma, l'offset viene aggiornato al nuovo valore.
- Il flusso si ripete finché il consumatore non interrompe la richiesta.
- Il consumatore può saltare o riavvolgere un offset in qualsiasi momento e leggere i messaggi successivi per comodità.
Flusso di lavoro del sistema di messaggistica della coda
In un sistema di messaggistica in coda, più consumatori con lo stesso ID gruppo possono iscriversi a un argomento. Sono considerati un unico gruppo e condividono i messaggi. Il flusso di lavoro del sistema è:

- I produttori di Kafka inviano messaggi a un argomento a intervalli regolari.
- I broker Kafka garantiscono un'equa distribuzione dei messaggi all'interno delle partizioni archiviandoli nelle partizioni configurate per un determinato argomento.
- Un singolo consumatore si iscrive a un argomento specifico.
- Fino a quando un nuovo consumatore non si iscrive allo stesso argomento, Kafka interagisce con il singolo consumatore.
- Con l'arrivo dei nuovi consumatori, i dati vengono condivisi tra due consumatori. La condivisione viene ripetuta finché il numero di partizioni configurate per quell'argomento non è uguale al numero di consumatori.
- Un nuovo consumer non riceverà ulteriori messaggi quando il numero di consumer supera il numero di partizioni configurate. Questa situazione si verifica a causa della condizione che ogni consumatore abbia diritto a un minimo di una partizione e, se nessuna partizione è vuota, i nuovi consumatori devono attendere.
2 strumenti importanti in Apache Kafka
Successivamente, in questo tutorial di Apache Kafka , discuteremo degli strumenti Kafka contenuti in “org.apache.kafka.tools.*.
1. Strumenti di replica
È uno strumento di progettazione di alto livello che conferisce maggiore disponibilità e maggiore durata.
- Strumento Crea argomento: questo strumento viene utilizzato per creare un argomento con un fattore di replica e un numero predefinito di partizioni e utilizza lo schema predefinito di Kafka per eseguire un'assegnazione di replica.
- Strumento Elenco argomenti: le informazioni per un determinato elenco di argomenti vengono elencate da questo strumento. Campi come partizione, nome argomento, leader, repliche e isr vengono visualizzati da questo strumento.
- Strumento Aggiungi partizione: questo strumento può aggiungere più partizioni per un argomento particolare. Esegue anche l'assegnazione manuale delle repliche delle partizioni aggiunte.
2. Strumenti di sistema
Lo script della classe di esecuzione può essere utilizzato per eseguire gli strumenti di sistema in Kafka. La sintassi è:
- Mirror Maker: l'uso di questo strumento è il mirroring di un cluster Kafka su un altro.
- Strumento di migrazione Kafka: questo strumento aiuta a migrare un broker Kafka da una versione all'altra.
- Consumer Offset Checker: questo strumento mostra l'argomento Kafka, la dimensione del registro, l'offset, le partizioni, il gruppo di consumatori e il proprietario per il particolare insieme di argomenti.
Leggi anche: Tutorial Apache Pig

I 4 casi d'uso principali di Apache Kafka
Discutiamo alcuni importanti casi d'uso di Apache Kafka in questo Tutorial di Apache Kafka:
- Stream processing: La caratteristica di forte durabilità di Kafka ne consente l'utilizzo nel campo dell'elaborazione ruscello. In questo caso, i dati vengono letti da un argomento, elaborati e i dati elaborati vengono quindi scritti in un nuovo argomento per renderlo disponibile alle applicazioni e agli utenti.
- Metriche: Kafka viene spesso utilizzato per il monitoraggio operativo dei dati. Le statistiche vengono aggregate dalle applicazioni distribuite per creare un feed centralizzato di dati operativi.
- Monitoraggio delle attività sui siti Web: data warehouse come BigQuery e Google utilizzano Kafka per il monitoraggio delle attività sui siti Web. Le attività del sito come ricerche, visualizzazioni di pagina o altre azioni dell'utente vengono pubblicate in argomenti centrali e rese accessibili per l'elaborazione in tempo reale, l'analisi offline e i dashboard.
- Aggregazione dei registri: utilizzando Kafka, i registri possono essere raccolti da molti servizi e resi disponibili in un formato standardizzato a molti consumatori.
Le 5 migliori applicazioni di Apache Kafka
Alcune delle migliori applicazioni industriali supportate da Kafka includono:
- Uber: l'app cab richiede un'elaborazione in tempo reale immensa e gestisce un enorme volume di dati. Processi importanti come l'auditing, i calcoli dell'ETA e la corrispondenza tra driver e clienti sono modellati sulla base di Kafka Streams.
- Netflix: la piattaforma di streaming Internet on-demand Netflix utilizza le metriche Kafka per l'elaborazione degli eventi e il monitoraggio in tempo reale.
- LinkedIn: LinkedIn gestisce 7 trilioni di messaggi ogni giorno, con 100.000 argomenti, 7 milioni di partizioni e oltre 4000 broker. Apache Kafka è utilizzato in LinkedIn per il monitoraggio, il monitoraggio e il monitoraggio delle attività degli utenti.
- Tinder: questa popolare app di appuntamenti utilizza Kafka Streams per diversi processi che includono moderazione dei contenuti, consigli, aggiornamento del fuso orario dell'utente, notifiche e attivazione dell'utente, tra gli altri.
- Pinterest: con una ricerca mensile di miliardi di pin e idee, Pinterest ha sfruttato Kafka per molti processi. I Kafka Streams vengono utilizzati per l'indicizzazione dei contenuti, il rilevamento di spam, i consigli e per il calcolo dei budget degli annunci in tempo reale.
Conclusione
In questo Tutorial di Apache Kafka , abbiamo discusso i concetti fondamentali di Apache Kafka, architettura e cluster in Kafka, flusso di lavoro Kafka, strumenti Kafka e alcune applicazioni di Kafka. Apache Kafka ha alcune delle migliori caratteristiche come durabilità, scalabilità, tolleranza ai guasti, affidabilità, estensibilità, replica e velocità effettiva elevata che lo rendono accessibile in alcune delle migliori applicazioni industriali, come esemplificato in questo tutorial di Apache Kafka .
Se sei interessato a saperne di più sui Big Data, dai un'occhiata al nostro PG Diploma in Software Development Specialization nel programma Big Data, progettato per professionisti che lavorano e fornisce oltre 7 casi di studio e progetti, copre 14 linguaggi e strumenti di programmazione, pratiche pratiche workshop, oltre 400 ore di apprendimento rigoroso e assistenza all'inserimento lavorativo con le migliori aziende.
Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.