© MSSA/Shutterstock.com
Einführung in Apache Pulsar - Teil 2

Das Persistenzmodell von Pulsar


Egal, ob es sich um ein Event-getriebenes System oder um die Verteilung von Massendaten handelt: Robuste, performante und skalierfähige Datenhaltung ist für eine hochperformante Messaging-Lösung von elementarer Bedeutung. Im zweiten Teil unserer Artikelreihe zum Thema Apache Pulsar möchten wir daher unser Augenmerk auf das Persistenzmodell legen, das Pulsar mit Hilfe von Apache BookKeeper zur Verfügung stellt, und die grundlegenden Konzepte sowie einige mögliche Anwendungsfälle und Beispiele vorstellen.

In unserem Einführungsartikel zu Apache Pulsar haben wir uns bereits mit grundlegenden Konzepten der Messaging-Lösung vertraut gemacht. Dabei haben wir gelernt, dass eine publizierte Nachricht stets einem Topic zugeordnet ist, das entweder eine flüchtige Halde darstellt oder Nachrichten persistent vorhält. Topics setzen sich in der Standardkonfiguration aus einer einzigen Partition zusammen. Eine Partition kann ausschließlich von einem einzelnen Pulsar Broker bedient werden. Das heißt, dass der zugehörige Pulsar Broker sämtliche Lese- und Schreibanfragen an das Topic übernimmt und Apache BookKeeper für die entsprechende Koordination mit der unterliegenden Persistenzlösung sorgt. Bei hohem Anfragevolumen kann das zu einem Bottleneck auf Ebene des Pulsar Brokers führen. Um dieses Problem zu umgehen, ermöglicht Apache Pulsar die Partitionierung eines Topics in mehrere Partitionen. Jede dieser Partitionen ist einem dedizierten Pulsar Broker zugeordnet, was über der Menge an verfügbaren Pulsar Brokers für eine Gleichverteilung des Anfragevolumens sorgt.

Für die weitere Betrachtung vereinfachen wir den Anwendungsfall, indem wir uns auf reguläre Topics beschränken, die über eine einzige Partition verfügen. Grundsätzlich lassen sich die diskutierten Konzepte jedoch unmittelbar auf partitionierte Topics übertragen.

Ledgers und Fragments

Apache BookKeeper ist eine von Apache Pulsar unabhängige, Log-strukturierte Persistenzlösung. BookKeeper verteilt Daten auf einzelne Knoten, sogenannten Bookies, eines BookKeeper-Clusters. Für die Ablage von Verwaltungsinformationen und zum Überwachen der Knotenverfügbarkeit benutzt BookKeeper – ebenso wie Apache Pulsar – Apache ZooKeeper als Prozesskoordinator.

Topics und Partitionen stellen die logische Sicht aus der Perspektive von Apache Pulsar auf unsere Daten dar (Abb. 1). Topics folgen einer Log-orientierten Struktur. Das heißt, dass sich ein Topic aus einer fortlaufenden Sequenz kleinerer Einheiten zusammensetzt. Diese Einh...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang