Entdecken Sie Millionen von E-Books, Hörbüchern und vieles mehr mit einer kostenlosen Testversion

Nur $11.99/Monat nach der Testphase. Jederzeit kündbar.

Apache Kafka
Apache Kafka
Apache Kafka
eBook72 Seiten55 Minuten

Apache Kafka

Bewertung: 0 von 5 Sternen

()

Vorschau lesen

Über dieses E-Book

In diesem shortcut geht es um Apache Kafka, den verteilten, partitionierenden und replizierenden Service für Datenströme. Kapitel 1 stellt die Konzepte vor, mithilfe derer Apache Kafka seine Funktionen zur Verfügung stellt, und erläutert deren effektive Performance. Im zweiten Kapitel geht es um die Abfrage und Verwaltung aktueller und historischer Definitionen von Datenstrukturen mithilfe von Schema Registry. In diesem Zusammenhang werden Avro-Schemas erläutert und es wird auf die Vorteile einer zentralen Schemaverwaltung eingegangen. Kapitel 3 widmet sich dem Kafka-REST-Proxy, der eine zusätzliche Möglichkeit bietet, über HTTP/REST mit einem Kafka-Cluster zu interagieren. Neben den Funktionen dieses Proxys demonstrieren die Autoren anhand einer Beispielanwendung den Umgang mit dem REST-API.
SpracheDeutsch
Herausgeberentwickler.press
Erscheinungsdatum25. Nov. 2015
ISBN9783868025668
Apache Kafka

Ähnlich wie Apache Kafka

Titel in dieser Serie (100)

Mehr anzeigen

Ähnliche E-Books

Programmieren für Sie

Mehr anzeigen

Ähnliche Artikel

Rezensionen für Apache Kafka

Bewertung: 0 von 5 Sternen
0 Bewertungen

0 Bewertungen0 Rezensionen

Wie hat es Ihnen gefallen?

Zum Bewerten, tippen

Die Rezension muss mindestens 10 Wörter umfassen

    Buchvorschau

    Apache Kafka - Lars Pfannenschmidt

    GmbH

    1 Massive Datenströme mit Apache Kafka

    Apache Kafka ist ein verteilter, partitionierender und replizierender Service für Datenströme. Er stellt seine Funktionen wie ein klassischer Messaging Broker zur Verfügung, allerdings unter der Verwendung von Konzepten, die sich von den bisher gängigen deutlich unterscheiden. Im Rahmen dieses Kapitels werden wir die wichtigsten dieser Konzepte und den Grund für deren effektive Performance beleuchten und mithilfe von Anwendungsbeispielen veranschaulichen.

    Kafka wird in der Regel in einem Cluster betrieben, bei dem jeder einzelne Knoten Broker genannt wird. Datenströme innerhalb des Clusters können in so genannte Topics kategorisiert werden. Ferner unterscheidet man zwischen Prozessen, die Nachrichten erzeugen (Producer), und Prozessen, die Nachrichten konsumieren (Consumer) (Abb. 1.1). Die Kommunikation zwischen Producer, Broker und Consumer findet mithilfe eines sprachenunabhängigen TCP-Protokolls statt. Durch diese Abstraktionsschicht werden Clientbibliotheken für unterschiedliche Programmiersprachen ermöglicht.

    Abbildung 1.1: Topologische Übersicht: Producer, Broker, Consumer nach [1]

    Topics und Partitionen

    Nachrichten werden auf Topics veröffentlicht, wobei eine Nachricht aus einem optionalen Schlüssel und dessen Wert besteht. Kafka erstellt für jedes Topic konfigurierbar viele Partitionen, die jeweils ein sortiertes und unveränderliches Protokoll darstellen, an das kontinuierlich Nachrichten angehängt werden, das Commit Log (Abb. 1.2). Jeder Nachricht in einer Partition wird ein sequenzieller Schlüssel zugewiesen, das Offset. Dieses Offset ist die einzige Metainformation, die zusätzlich zur eigentlichen Nachricht gespeichert wird.

    Abbildung 1.2: Die Anatomie eines Topics nach [1]

    Das Aufteilen von Topics auf n Partitionen ermöglicht es, dass ein Server nicht den Platz für ein gesamtes Topic bereitstellen muss, sondern nur für dessen n-ten Teil. Zusätzlich kann die Last von Producern und Consumern im Broker-Cluster verteilt und jede Partition für den Fehlerfall repliziert werden.

    Ein Broker behält jede veröffentlichte Nachricht für einen konfigurierbaren Zeitraum vor, standardmäßig sieben Tage, oder bis eine definierbare Maximalgröße erreicht ist, unabhängig davon, ob diese bereits konsumiert wurde oder nicht. Nach Ablauf dieses Zeitfensters wird die Nachricht gelöscht. Da Kafkas Performance unabhängig von der Größe des commit logs konstant bleibt, kann eine große Nachrichtenmasse problemlos gespeichert werden.

    Offset-Management

    Das Offset, das definiert, welche Nachricht gelesen werden soll, wird anders als beim klassischen Messaging vom Consumer selbst gesteuert. Da außerdem das Commit Log kontinuierlich erweitert wird, können so Lese- und Schreibzugriffe auf der Festplatte größtenteils sequenziell erledigt werden. Diese Art der Persistierung von Daten ist in einem solchen verteilten System deutlich leistungsfähiger als der klassische Ansatz.

    In der Regel wird beim Empfang von Nachrichten das Offset kontinuierlich erhöht, um sequenziell zu lesen. Es ist aber ebenso möglich, Nachrichten in einer willkürlichen Reihenfolge oder bereits konsumierte Nachrichten zu lesen. Dieses Vorgehen kann beispielsweise angewandt werden, wenn eine erneute Datenverarbeitung (beispielsweise im Fehlerfall) nötig sein sollte oder ein zweiter Consumer dieselben Nachrichten zeitgleich lesen möchte. Das Entwerfen einer passenden Strategie zur Nachrichtenabarbeitung wird Offset-Management genannt. Im Zuge der Betrachtung eines Anwendungsbeispiels werden wir im Abschnitt Consumer näher auf konkrete Vorgehensweisen eingehen.

    Log Compaction

    Wie bereits beschrieben, speichert Kafka im normalen Betrieb

    Gefällt Ihnen die Vorschau?
    Seite 1 von 1