Architettura di Kafka

Introduzione ad Apache Kafka

Mike Metzger

Data Engineering Consultant

Componenti di Kafka

  • Server Kafka
    • Un cluster di uno o più computer
    • Archivia i dati
    • Gestisce le comunicazioni
    • Può integrarsi con altri sistemi (database, log, ecc.)
  • Client Kafka
    • Leggono tramite consumer Kafka
    • Scrivono tramite producer Kafka
    • Elaborano i dati secondo necessità
Introduzione ad Apache Kafka

Server Kafka

  • Storage, detto anche Kafka Broker
    • I dati scritti dai producer sono archiviati e organizzati in topic
    • I topic sono partizionati, ovvero divisi in pezzi separati
    • Messaggi/eventi salvati in una partizione in base a un event id
    • I messaggi si recuperano nello stesso ordine di scrittura

Storage e partizioni Kafka

1 Image sourced from https://kafka.apache.org/intro
Introduzione ad Apache Kafka

Partizioni e replica

  • Kafka è tollerante ai guasti
  • Se un sistema va offline, altri forniscono i dati richiesti
  • Numero max di guasti - 1 == fattore di replica
  • Fattore di replica max == numero di server
  • La replica avviene copiando le partizioni

Cluster Kafka, broker e topic.png

Introduzione ad Apache Kafka

Esempio

Cluster Kafka, broker e topic.png

  • Cluster Kafka con 3 broker
  • 3 topic definiti
  • Replica 2x == puoi perdere 1 sistema
  • Il Broker 1 ha copie dei Topic 1 e 2
  • Il Broker 2 ha copie dei Topic 2 e 3
  • Il Broker 3 ha copie dei Topic 1 e 3
  • Ogni topic è distribuito su 2 broker nel cluster
Introduzione ad Apache Kafka

Esempio con 1 guasto

Cluster Kafka, broker e topic - 1 broker guasto.png

  • Il Broker 2 si guasta
  • Fattore di replica 2x
    • 2 - 1 == Gestibile 1 sistema guasto
  • Ogni topic ha ancora almeno una copia nel cluster
Introduzione ad Apache Kafka

Esempio con 2 guasti

Cluster Kafka, broker e topic - 2 broker guasti.png

  • 2 broker guasti
  • Fattore di replica 2x
  • Guasti oltre il supportato (1 sistema)
  • Il Topic 2 non è più disponibile nel cluster
    • I Topic 1 e 3 sono ancora disponibili, quindi non è un guasto totale
Introduzione ad Apache Kafka

Esercitiamoci!

Introduzione ad Apache Kafka

Preparing Video For Download...