Was ist Apache Kafka und wofür wird es verwendet?
Apache Kafka ist eine verteilte Streaming- und Messaging-Plattform, die große Datenmengen in Echtzeit verarbeiten kann. Sie wird genutzt, um Nachrichten zwischen Systemen asynchron und zuverlässig auszutauschen.
Kafka und klassischen Message Brokern wie RabbitMQ?
RabbitMQ ist ein Message Queue-System mit Push-Mechanismus und Fokus auf garantierte Zustellung. Kafka ist ein Distributed Log System, das Nachrichten auf Partitionen speichert und von Consumer-Gruppen abruft. Kafka ist besser skalierbar und für Event-Streaming oder Datenanalyse optimiert.
Was sind die Hauptkomponenten von Kafka?
Producer senden Nachrichten in Topics. Broker verwalten Topics und Partitionen. Consumer lesen Nachrichten. Zookeeper verwaltete früher Metadaten und wird heute durch den Kafka Controller ersetzt.
Was ist ein Topic in Kafka?
Ein Topic ist ein Nachrichtenkanal. Producer schreiben Nachrichten in Topics, Consumer lesen sie. Topics werden in Partitionen unterteilt, um paralleles Schreiben und Lesen zu ermöglichen.
Was ist eine Partition und warum ist sie wichtig?
Partitionen ermöglichen horizontale Skalierung. Jede Partition ist eine geordnete, unveränderliche Sequenz von Nachrichten. Sie erlauben parallele Verarbeitung und Lastverteilung.
Wie funktioniert Kafka intern vereinfacht erklärt?
Producer schreiben Nachrichten in partitionierte Topics. Partitionen liegen verteilt auf mehreren Brokern. Consumer lesen sequenziell und speichern ihren Fortschritt als Offset. Nachrichten werden erst nach Ablauf der Retention Time gelöscht.
Unterschied zwischen Consumer und Consumer Group?
Ein Consumer liest Nachrichten aus einem Topic. Eine Consumer Group besteht aus mehreren Consumern, die sich Partitionen teilen. Jede Nachricht wird pro Gruppe genau einmal verarbeitet.
Wie stellt Kafka sicher, dass Nachrichten nicht verloren gehen?
Kafka nutzt Replikation über mehrere Broker. Mit acks=all wird eine Nachricht erst bestätigt, wenn alle Replikate geschrieben haben. min.insync.replicas schützt zusätzlich vor Datenverlust.
Was ist ein Offset in Kafka?
Ein Offset ist der Positionszeiger innerhalb einer Partition. Er zeigt an, welche Nachricht zuletzt gelesen wurde. Offsets werden meist im internen Topic __consumer_offsets gespeichert.
Wie funktioniert Nachrichtenreihenfolge in Kafka?
Innerhalb einer Partition sind Nachrichten strikt geordnet. Über mehrere Partitionen gibt es keine globale Reihenfolge. Ein geeigneter Partition Key stellt Reihenfolge für zusammengehörige Nachrichten sicher.
Unterschied zwischen @KafkaListener und KafkaTemplate?
@KafkaListener dient zum Empfangen von Nachrichten als Consumer. KafkaTemplate wird verwendet, um Nachrichten als Producer zu senden.
Was ist Consumer Lag und warum ist er wichtig?
Consumer Lag ist die Differenz zwischen dem neuesten Offset und dem gelesenen Offset. Ein hoher Lag zeigt, dass der Consumer nicht schnell genug verarbeitet.
Schemaänderungen bei JSON- oder Avro-Nachrichten um?
Ich verwende ein Schema-Registry-System. Damit werden Versionierung und Abwärtskompatibilität sichergestellt.
Unterschied Idempotenz und Transaktionen in Kafka?
Idempotenz verhindert doppelte Nachrichten bei Wiederholungen. Transaktionen stellen sicher, dass mehrere Nachrichten atomar geschrieben werden. Zusammen ermöglichen sie Exactly-Once-Delivery.
Wie funktioniert Rebalancing in Kafka?
Wenn sich die Consumer einer Gruppe ändern, werden Partitionen neu verteilt. Kafka sorgt dafür, dass jede Partition genau einem Consumer zugeordnet ist.
Was ist ein Kafka Broker?
Ein Broker ist ein Kafka-Server, der Nachrichten speichert und bereitstellt. Ein Cluster besteht aus mehreren Brokern. Sie sorgen gemeinsam für Skalierung und Ausfallsicherheit.
Was bedeutet Retention Time in Kafka?
Die Retention Time bestimmt, wie lange Nachrichten gespeichert bleiben. Nachrichten werden zeit- oder größenbasiert gelöscht. Lesen hat keinen Einfluss auf die Löschung.
Was ist Log Compaction?
Log Compaction hält pro Key nur den letzten Wert. Alte Werte werden entfernt, nicht aber der Key. Das ist nützlich für Zustandsdaten.
Was ist ein Partition Key?
Der Partition Key bestimmt, in welche Partition eine Nachricht geschrieben wird. Gleiche Keys landen immer in derselben Partition. Das ist wichtig für Reihenfolge.
Was ist Exactly-Once Semantics?
Exactly-Once garantiert, dass Nachrichten genau einmal verarbeitet werden. Kafka erreicht das mit Idempotenz und Transaktionen. Es ist besonders wichtig bei Finanz- oder Zustandsdaten.
Was ist At-Least-Once Delivery?
Nachrichten können mehrfach verarbeitet werden. Das System garantiert aber, dass keine Nachricht verloren geht. Consumer müssen idempotent sein.
Was ist At-Most-Once Delivery?
Nachrichten werden höchstens einmal verarbeitet. Datenverlust ist möglich. Dafür ist die Latenz gering.
Was ist Kafka Connect?
Kafka Connect ist ein Framework zur Anbindung externer Systeme. Es ermöglicht einfache Datenimporte und -exporte. Beispiele sind Datenbanken oder Cloud-Systeme.
Was ist Kafka Streams?
Kafka Streams ist eine Library zur Stream-Verarbeitung. Sie erlaubt Transformationen direkt auf Kafka-Daten. Kein separates Cluster ist nötig.
Was ist ein State Store?
Ein State Store speichert lokalen Zustand für Stream-Verarbeitung. Er wird für Aggregationen und Joins genutzt. Kafka repliziert diesen Zustand.
Was ist Zookeeper-freies Kafka?
Neue Kafka-Versionen ersetzen Zookeeper durch den internen Controller. Das vereinfacht Betrieb und Architektur. Metadaten werden intern verwaltet.
Was ist Backpressure in Kafka?
Kafka selbst kennt keine Backpressure. Consumer steuern ihre Geschwindigkeit über Polling. Das Design verhindert Überlastung durch Pull-Mechanismus.
Was ist ein Dead Letter Topic?
Ein Dead Letter Topic speichert fehlerhafte Nachrichten. Dadurch gehen sie nicht verloren. Fehler können später analysiert werden.
Wie skaliert man Kafka Consumer?
Man erhöht die Anzahl der Consumer in einer Gruppe. Die maximale Parallelität ist durch die Anzahl der Partitionen begrenzt. Mehr Consumer als Partitionen bringen keinen Vorteil.
Was ist ein ISR in Kafka?
ISR steht für In-Sync Replicas. Nur diese Replikate gelten als aktuell. Sie sind entscheidend für acks=all.
Was ist Throttling in Kafka?
Throttling begrenzt Durchsatz für Producer oder Consumer. Es schützt das Cluster vor Überlastung. Es wird häufig in Multi-Tenant-Umgebungen genutzt.
Wie überwacht man Kafka?
Man überwacht Lag Durchsatz und Broker-Status. Tools wie Prometheus oder Kafka UI werden genutzt. Monitoring ist entscheidend für Stabilität.
Was ist eine Topic-Partition-Strategie?
Sie definiert Anzahl und Schlüsselwahl. Gute Strategien vermeiden Hot Partitions. Sie sind wichtig für Performance.
Was ist Schema Evolution?
Schema Evolution beschreibt kontrollierte Änderungen an Nachrichtenformaten. Sie muss abwärts- oder vorwärtskompatibel sein. Schema Registry unterstützt das.
Wann ist Kafka ungeeignet?
Kafka ist ungeeignet für einfache Request-Response-Kommunikation. Auch sehr kleine Systeme profitieren oft nicht. Der Betrieb ist komplexer als klassische Queues.
Last changeda month ago