Kafkas arkitektur

Introduktion till Apache Kafka

Mike Metzger

Data Engineering Consultant

Kafkas komponenter

  • Kafka-server
    • Ett kluster av en eller flera datorer
    • Lagrar data
    • Hanterar kommunikation
    • Kan integreras med andra system (databaser, loggar m.m.)
  • Kafka-klienter
    • Läser via Kafka-konsument
    • Skriver via Kafka-producent
    • Bearbetar data efter behov
Introduktion till Apache Kafka

Kafka-server

  • Lagring, även kallad Kafka Broker
    • Data från producenter lagras och organiseras via topics
    • Topics är partitionerade, dvs. uppdelade i separata delar
    • Meddelanden/händelser lagras i en given partition baserat på ett händelse-id
    • Meddelanden hämtas i samma ordning som de skrevs

Kafkas lagring och partitioner

1 Bild hämtad från https://kafka.apache.org/intro
Introduktion till Apache Kafka

Partitioner och replikering

  • Kafka är feltolerant
  • Om ett system går offline kan andra leverera den begärda datan
  • Max antal fel - 1 == replikeringsfaktor
  • Max replikeringsfaktor == antal servrar
  • Replikering hanteras genom att kopiera partitioner

Kafka-kluster, brokers och topics.png

Introduktion till Apache Kafka

Exempel

Kafka-kluster, brokers och topics.png

  • Kafka-kluster med 3 brokers
  • 3 topics definierade
  • 2x replikering == kan förlora 1 system
  • Broker 1 har kopior av Topic 1 och Topic 2
  • Broker 2 har kopior av Topic 2 och Topic 3
  • Broker 3 har kopior av Topic 1 och Topic 3
  • Varje topic delas mellan 2 brokers i klustret
Introduktion till Apache Kafka

Exempel med 1 fel

Kafka-kluster, brokers och topics – 1 broker har fallit bort.png

  • Broker 2 slutar fungera
  • Replikeringsfaktor 2x
    • 2 - 1 == klarar 1 systemfel
  • Varje topic har minst en kopia kvar i klustret
Introduktion till Apache Kafka

Exempel med 2 fel

Kafka-kluster, brokers och topics – 2 brokers har fallit bort.png

  • 2 brokers slutar fungera
  • Replikeringsfaktor 2x
  • Fler fel än vad som stöds (1 system)
  • Topic 2 är inte längre tillgänglig i klustret
    • Topics 1 och 3 är fortfarande tillgängliga – inget totalhaveri
Introduktion till Apache Kafka

Nu kör vi en övning!

Introduktion till Apache Kafka

Preparing Video For Download...