Kafka ist eine verteilte Streaming-Plattform. De-facto-Standard fuer Event-driven Architekturen.
Grundlegende Konzepte¶
- Topic – Kategorie von Nachrichten
- Partition – horizontale Aufteilung eines Topics
- Producer – schreibt Nachrichten
- Consumer – liest Nachrichten
- Consumer Group – Gruppe von Consumern, jeder liest eine andere Partition
- Offset – Position in der Partition
- Broker – Kafka-Server
Befehle¶
Der vollstaendige Leitfaden zu Kafka¶
kafka-topics –create –topic orders –partitions 6 –replication-factor 3
Auflisten¶
kafka-topics –list
Produzieren¶
kafka-console-producer –topic orders –bootstrap-server localhost:9092
Konsumieren¶
kafka-console-consumer –topic orders –from-beginning –group my-group
Anwendungsfaelle¶
- Event-Streaming (User-Events, Logs)
- Microservices-Kommunikation
- Change Data Capture (CDC)
- Echtzeit-Analytics-Pipeline
- Log-Aggregation
Garantien¶
- At-most-once – kann Nachrichten verlieren
- At-least-once – kann duplizieren (Standard)
- Exactly-once – idempotenter Producer + transaktionales Konsumieren
Alternativen¶
- RabbitMQ – einfacher, Message Queue (kein Streaming)
- NATS – leichtgewichtig, Cloud-native
- Redpanda – Kafka-kompatibel, ohne JVM
Wann Kafka¶
Kafka fuer High-Throughput Event-Streaming. RabbitMQ fuer Task Queues. NATS fuer leichtgewichtiges Messaging.