Architektura Kafky

Introduction to Apache Kafka

Mike Metzger

Data Engineering Consultant

Komponenty Kafky

  • Kafka server
    • Cluster jednoho nebo více počítačů
    • Ukládá data
    • Spravuje komunikaci
    • Lze integrovat s dalšími systémy (databáze, logy atd.)
  • Kafka klienti
    • Čtení přes Kafka consumer
    • Zápis přes Kafka producer
    • Zpracování dat dle potřeby
Introduction to Apache Kafka

Kafka server

  • Úložiště, označované jako Kafka Broker
    • Data zapsaná producenty jsou ukládána a organizována prostřednictvím témat
    • Témata jsou rozdělena na oddíly (partitions)
    • Zprávy/události jsou ukládány do oddílu podle ID události
    • Zprávy jsou načítány ve stejném pořadí, v jakém byly zapsány

Kafka úložiště a oddíly

1 Obrázek převzat z https://kafka.apache.org/intro
Introduction to Apache Kafka

Oddíly a replikace

  • Kafka je odolná vůči chybám
  • Pokud jeden systém selže, ostatní mohou data poskytnout
  • Max. počet selhání - 1 == faktor replikace
  • Max. faktor replikace == počet serverů
  • Replikace je zajišťována kopírováním oddílů

Kafka cluster, brokery a témata.png

Introduction to Apache Kafka

Příklad

Kafka cluster, brokery a témata.png

  • Kafka cluster se 3 brokery
  • 3 definovaná témata
  • Replikace 2x == lze ztratit 1 systém
  • Broker 1 má kopie Tématu 1 a Tématu 2
  • Broker 2 má kopie Tématu 2 a Tématu 3
  • Broker 3 má kopie Tématu 1 a Tématu 3
  • Každé téma je sdíleno mezi 2 brokery v clusteru
Introduction to Apache Kafka

Příklad s 1 selháním

Kafka cluster, brokery a témata – 1 selhaný broker.png

  • Broker 2 selže
  • Faktor replikace 2x
    • 2 - 1 == zvládne 1 selhání
  • Každé téma má v clusteru stále alespoň jednu kopii
Introduction to Apache Kafka

Příklad se 2 selháními

Kafka cluster, brokery a témata – 2 selhaní brokeři.png

  • 2 selhaní brokeři
  • Faktor replikace 2x
  • Více selhání, než je podporováno (1 systém)
  • Téma 2 již není v clusteru dostupné
    • Témata 1 a 3 jsou stále dostupná – není to úplné selhání
Introduction to Apache Kafka

Pojďme si procvičit!

Introduction to Apache Kafka

Preparing Video For Download...