Apache Kafka ist der Standard fuer Event-Streaming. Millionen von Nachrichten pro Sekunde, garantierte Zustellung und unbegrenzte Skalierbarkeit.
Architektur und Konzepte¶
Kafka ist ein verteiltes Commit-Log — es speichert Nachrichten persistent und ermoeglicht wiederholtes Lesen.
Konzepte¶
- Topic — logischer Kanal
- Partition — physische Aufteilung fuer Parallelismus
- Consumer Group — automatische Partition-Zuweisung
- Broker — Server im Cluster
from confluent_kafka import Producer, Consumer
import json
producer = Producer({'bootstrap.servers': 'kafka:9092'})
producer.produce('orders', key=b'123', value=json.dumps(order).encode())
producer.flush()
consumer = Consumer({
'bootstrap.servers': 'kafka:9092',
'group.id': 'processor',
'auto.offset.reset': 'earliest',
})
consumer.subscribe(['orders'])
while True:
msg = consumer.poll(1.0)
if msg: process(json.loads(msg.value()))
Bewaehrte Praktiken¶
- Replikationsfaktor 3
- Idempotenter Producer
- Schema Registry — Schema-Versionierung
Zusammenfassung¶
Kafka ist das Fundament der ereignisgesteuerten Architektur. Topics, Partitions und Consumer Groups fuer skalierbare Echtzeit-Pipelines.