Kafka

Ein von LinkedIn in Scala entwickeltes und verteiltes Open-Source Messaging System.

Der Sender sendet Nachrichten an Kafka, Nachrichten werden zu einem Thema gespeichert. Empfänger abonnieren diese Themen um Nachrichten zu erhalten. Jede Nachricht enthält einen Schlüssel, einen Wert und einen Zeitstempel.

Kafka verfolgt die Idee eines verteilten Log Systems, eine Sammlung von Nachrichten welche sequentiell in eine Datei geschrieben werden. Empfänger holen Nachrichten in Reihenfolge ab und merken sich den Index.

Kafka wird im Cluster betrieben und jede Node ist ein Broker, Broker können leaders oder replicas sein. Die Broker speichern die Nachrichten in Partitionen, mehrere Partitionen bilden ein Thema.

Kafka behält die Nachrichten für eine bestimmte Zeit, speichert und repliziert die Daten.

Nachrichten Austausch

Sender senden die Nachrichten immer zu einem Thema.
Empfänger sind dafür verantwortlich ihren Status über einen Index (Offset) zu kontrollieren.

Einzelnes Thema 1:1

Ein Sender sendet Nachrichten an ein einzelnes Thema die von einem Empfänger abgeholt werden.

Einzelnes Thema 1:N

Ein Sender sendet Nachrichten an ein einzelnes Thema die von mehreren Empfängern abgeholt werden.

Mehrere Themen 1:N

Ein Sender sendet Nachrichten an ein mehrere Themen die von mehreren Empfängern abgeholt werden.

Mehrere Themen N:M

Mehrere Sender sendet Nachrichten an ein mehrere Themen die von mehreren Empfängern abgeholt werden.