Benvenuto a Kafkaland!

Pubblicato il

(Bartha Bela Tibor) (19 giugno 2020)

Intro

Se hai mai lavorato con accodamento messaggi o piattaforme di streaming, Kafka è quello che dovresti controllare. È meglio utilizzarlo per lo streaming di dati in tempo reale.

Se stai considerando Kafka per la tua applicazione, Kafka è ideale per i seguenti casi duso:

  • Pub / Sottomessaggio
  • Elaborazione flusso
  • Archiviazione dati

Prima di tutto, prima di toccare Kafka, si dovrebbe sapere quanto segue: Kafka è velocissimo, hai unenorme libertà ed è facile sbagliare quando provieni da unaltra piattaforma di accodamento dei messaggi.

In questo articolo ci concentreremo sul fare le cose bene con Kafka.

Chiave Concetti:

  • messaggio : unità di dati
  • argomento : canale dati
  • partizione : gli argomenti possono avere più partizioni
  • offset : posizione di un messaggio in una partizione
  • producer : consente a unapplicazione di pubblicare dati su un determinato argomento
  • consumatore : lapplicazione può consumare dati da uno o più argomenti. Un argomento può avere più consumatori. I consumatori possono iscriversi a un numero qualsiasi di partizioni di un argomento.
  • gruppi di consumatori : i consumatori possono essere organizzati in gruppi di consumatori, che stanno leggendo da un argomento, in parallelo quando leggono da diversi partizioni
  • broker : gestisce larchiviazione degli argomenti
  • cluster : più broker, contenenti diversi broker
  • leader / replica : ogni broker contiene un numero di partizioni di un argomento, ognuna di queste può essere un leader o una replica. Tutte le operazioni di scrittura e lettura su un argomento vengono eseguite sul leader, che coordina laggiornamento delle repliche. Se un leader fallisce, una replica assume il ruolo di leader

Ulteriori informazioni sulle basi di Kafka sono disponibili qui .

Nozioni di base con Node.js

Per questa introduzione utilizzeremo Node.js e creeremo produttore e consumatore di base.

Prima di tutto, installerai Kafka localmente come descritto qui .

Questo articolo presume che abbiamo un solo broker.

Gli argomenti verranno creati prima che la nostra applicazione venga eseguita, vedi sotto.

Al momento della stesura di questa introduzione, ci sono 3 pacchetti stabili da usare con NodeJS:

  1. Node-rdkafka
  2. KafkaJS
  3. Kafka-node

Tutti questi funzionano in modo simile, per lintroduzione useremo node-rdkafka ( npm install node-rdkafka )

Supponendo che tu abbia installato Kafka localmente con le impostazioni predefinite e avviato un broker, possiamo creare un semplice produttore e consumatore.

Crea largomento manualmente:

Crea produttore e produce un evento:

Crea il consumatore e consuma eventi:

Questo è un esempio per un consumatore che scorre. Consuma gli eventi così come appaiono sullargomento. Unaltra possibilità è quella di utilizzare un consumatore non scorrevole, specificando il numero di eventi da consumare come parametro di consumer.consume (numero). In questo caso, riceveremo i messaggi dopo aver ricevuto un numero di messaggi non consumati nellargomento.

Si impegna

Poiché Kafka è stato progettato per la sicurezza, i consumatori possono contrassegnare i messaggi come consumati – impegnato . Per impostazione predefinita, node-rdkafka esegue auto-commit , inoltre, può essere eseguito manualmente: consumer.commit () o consumer.commitMessage (messaggio) .

Nel caso in cui il consumatore sia disconnesso, un altro consumatore può continuare dal messaggio commesso.

Benvenuto in Kafkaland! Buon divertimento!

Questo è il primo di una serie di quattro articoli. Seguirà casi specifici di utilizzo di Kafka per: microservizi, chatbot e progetti fintech. Sì!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *