Arhitectura Kafka

Introducere în Apache Kafka

Mike Metzger

Data Engineering Consultant

Componente Kafka

  • Server Kafka
    • Un cluster cu unul sau mai multe calculatoare
    • Stochează date
    • Gestionează comunicațiile
    • Se poate integra cu alte sisteme (baze de date, jurnale etc.)
  • Clienți Kafka
    • Citire prin Kafka consumer
    • Scriere prin Kafka producer
    • Procesare date după necesități
Introducere în Apache Kafka

Server Kafka

  • Stocare, cunoscut și ca Kafka Broker
    • Datele scrise de producători sunt stocate și organizate prin topicuri
    • Topicurile sunt parționate, adică stocate în bucăți separate
    • Mesajele/evenimentele sunt stocate într-o partiție pe baza unui id de eveniment
    • Mesajele sunt recuperate în aceeași ordine în care au fost scrise

Stocare și partiții Kafka

1 Imagine preluată din https://kafka.apache.org/intro
Introducere în Apache Kafka

Partiții și replicare

  • Kafka este tolerant la defecțiuni
  • Dacă un sistem iese din funcțiune, altele pot furniza datele solicitate
  • Nr. max. de defecțiuni - 1 == factor de replicare
  • Factor de replicare max. == numărul de servere
  • Replicarea se realizează prin copierea partițiilor

Cluster Kafka, brokeri și topicuri.png

Introducere în Apache Kafka

Exemplu

Cluster Kafka, brokeri și topicuri.png

  • Cluster Kafka cu 3 brokeri
  • 3 topicuri definite
  • Replicare 2x == se poate pierde 1 sistem
  • Brokerul 1 deține copii ale Topicului 1 și Topicului 2
  • Brokerul 2 deține copii ale Topicului 2 și Topicului 3
  • Brokerul 3 deține copii ale Topicului 1 și Topicului 3
  • Fiecare topic este distribuit pe 2 brokeri din cluster
Introducere în Apache Kafka

Exemplu cu 1 defecțiune

Cluster Kafka, brokeri și topicuri - 1 broker defect.png

  • Brokerul 2 cade
  • Factor de replicare 2x
    • 2 - 1 == tolerează 1 sistem defect
  • Fiecare topic are cel puțin o copie în cluster
Introducere în Apache Kafka

Exemplu cu 2 defecțiuni

Cluster Kafka, brokeri și topicuri - 2 brokeri defecți.png

  • 2 brokeri defecți
  • Factor de replicare 2x
  • Mai multe defecțiuni decât suportate (1 sistem)
  • Topicul 2 nu mai este disponibil în cluster
    • Topicurile 1 și 3 sunt încă disponibile, deci nu este o defecțiune completă
Introducere în Apache Kafka

Să exersăm!

Introducere în Apache Kafka

Preparing Video For Download...