Kafka-architectuur

Introductie tot Apache Kafka

Mike Metzger

Data Engineering Consultant

Kafka-onderdelen

  • Kafka-server
    • Een cluster van één of meer computers
    • Slaat data op
    • Beheert communicatie
    • Kan ook integreren met andere systemen (databases, logs, etc.)
  • Kafka-clients
    • Lezen via Kafka consumer
    • Schrijven via Kafka producer
    • Verwerken data naar behoefte
Introductie tot Apache Kafka

Kafka-server

  • Storage, ook wel de Kafka-broker
    • Data van producers wordt opgeslagen en geordend via topics
    • Topics zijn gepartitioneerd, dus in stukken opgeslagen
    • Berichten/events in een partitie op basis van event-id
    • Berichten worden opgehaald in dezelfde volgorde als geschreven

Kafka-opslag en partities

1 Afbeelding afkomstig van https://kafka.apache.org/intro
Introductie tot Apache Kafka

Partities & replicatie

  • Kafka is fouttolerant
  • Valt één systeem uit, dan leveren anderen de gevraagde data
  • Max. uitval = replicatiefactor - 1
  • Max. replicatiefactor = aantal servers
  • Replicatie gebeurt via kopieën van partities

Kafka-cluster, brokers en topics.png

Introductie tot Apache Kafka

Voorbeeld

Kafka-cluster, brokers en topics.png

  • Kafka-cluster met 3 brokers
  • 3 topics gedefinieerd
  • Replicatie 2x == kan 1 systeem verliezen
  • Broker 1 heeft kopieën van Topic 1 & Topic 2
  • Broker 2 heeft kopieën van Topic 2 & Topic 3
  • Broker 3 heeft kopieën van Topic 1 & Topic 3
  • Elke topic staat op 2 brokers in het cluster
Introductie tot Apache Kafka

Voorbeeld met 1 uitval

Kafka-cluster, brokers en topics - 1 broker uitgevallen.png

  • Broker 2 valt uit
  • Replicatiefactor 2x
    • 2 - 1 == kan 1 uitval aan
  • Elke topic heeft nog minstens één kopie in het cluster
Introductie tot Apache Kafka

Voorbeeld met 2 uitvallen

Kafka-cluster, brokers en topics - 2 brokers uitgevallen.png

  • 2 brokers uitgevallen
  • Replicatiefactor 2x
  • Meer uitval dan ondersteund (1 systeem)
  • Topic 2 is niet meer beschikbaar in het cluster
    • Topics 1 en 3 zijn nog beschikbaar, dus geen totale uitval
Introductie tot Apache Kafka

Laten we oefenen!

Introductie tot Apache Kafka

Preparing Video For Download...