Messaging

Yahoos Messaging-System Pulsar fordert Kafka heraus

Melanie Feldmann

© Shutterstock.com / Jurik Peter

Yahoo brauchte für seine verteilten Systeme ein Messaging-System, das hohe Performance und Skalierbarkeit liefern kann. Das Unternehmen fand aber keine passende Lösung und entwickelte das Publish-and-Subscribe-Messaging-System Pulsar. Jetzt stellt Yahoo seine Entwicklung Open Source der Community zur Verfügung.

„Publish and Subscribe“ (Pub-sub Messaging) ist ein Messaging-Konzept, bei dem Sender (Publisher) Nachrichten ohne einen spezifischen Adressaten rausschicken. Die gesendeten Nachrichten werden in Klassen einsortiert. Die Empfänger (Subscriber) abonnieren bestimmte Klassen, wissen aber nicht woher die Nachrichten stammen. Vor allem verteilte Systeme, die Echtzeitdienste zur Verfügung stellen, nutzen Pub-sub Messaging.

Yahoos Anforderungen an ein Messaging-System war eine durchschnittliche Latenz von 5 Millisekunden. Außerdem sollte die Verfügbarkeit bei den „five 9s“ liegen, also bei 99,999 Prozent. Dazu müssen die Nachrichten in einer Produktionsumgebung mehreren Festplatten oder Knoten übergeben werden, damit Nachrichten auch bei Ausfällen zuverlässig ankommen. Weil das Unternehmen mit bestehenden Lösungen nicht zufrieden war, entwickelte es Pulsar.

Pulsar ist ein skalierbares Pub-sub-Messaging-System mit niedriger Latenz, das auf Standard-Hardware läuft. Das Pub-sub-Messaging läuft über Topics. Die Anzahl an Topics, Nachrichten, der Durchsatz und die Speicherkapazität lassen sich einfach mit neuen Servern erweitern. Dass Nachrichten mindestens einmal verschickt werden ist garantiert. Auch die Replikation über mehrere Datencenter hinweg ist möglich. Außerdem ist es mit Pulsar möglich, einen zentral gesteuertes Cluster aufzubauen, das Pub-sub-Messaging als Service anbietet, Anwendungen lassen sich als Tenants an Bord holen. Um Pulsar zu managen, verfügt das System über verschiedene APIs. Auch Tenants können ihre ihre eigene Domänen über APIs administrieren, managen und überwachen.

Lesen Sie auch: Use Cases für Apache Kafka: “Viele Data-Probleme sind gar nicht so big”

Aufbau von Pulsar

Bei Yahoo besteht eine Pulsar-Instanz aus mehrern Clustern, die normalerweise geographisch verteilt laufen. Ein Cluster besteht aus Brokern zur Nachrichtenverteilung, Apache BookKeeper für das Speichern der Nachrichten und ZooKeeper für Koordination und Konfiguration.

Pulsar_Architektur

Quelle: https://s.yimg.com/ge/engtumblr/pulsar/image1.png

Ein Pulsar Broker bietet die Topics an. Jedes Topic ist einem Broker zugeordnet und jeder Broker kümmert sich um mehrere tausend Topics. Der Broker nimmt Nachrichten von den Sendern an, schiebt sie in einen Speicher und schickt sie zu den Abonnenten. Außerdem kümmert sich der Broker um Admin-Anfragen. Er hat keinen dauerhaften Zustand. Um unnötige Festplattenzugriffe zu vermeiden, cacht der Broker die Daten, wenn er die Nachrichten an Clients oder replizierte Cluster weiterleitet. Der Pulsar Broker managt auch die Replikatoren, die publizierte Nachrichten aus dem lokalen Cluster asynchron in andere Cluster schieben.

Der Unterschied zu Kafka

Apache BookKeeper kümmert sich um den langlebigen Speicher von Pulsar. Pulsar generiert verschiedene unabhängige Logs (Ledger) und nutzt sie für den Langzeitspeicher. BookKeeper Hosts (Bookies) sind für mehrere tausend Ledger mit gleichlaufenden Schreib- und Lesezugriffen designet. Indem Bookies separate Festplatten nutzen, können sie die den Einfluss von Leseoperationen auf die Latenz von laufenden Schreiboperationen verhindern und anders herum. Dies ist der Hauptunterschied zwischen Pulsar und anderen Messaging-Systemen wie Apache Kafka.

Für die Zukunft planen die Entwickler die Migrationszeit eines Topics von einem Broker zum anderen von 10 Sekunden auf unter 1 Sekunde zu drücken. Auch die Latenz bei der Nachrichtenübermittlung soll weiter sinken. Und weitere Programmiersprachen sollen angebunden werden.

In einem ausführlichen Blogpost erläutern die Entwickler den Aufbau von Pulsar. Die Software liegt bei GitHub unter einer Apache-2-Lizenz.

Verwandte Themen:

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: