Was ist ein Pub/Sub-System?
Besuchen Sie systemdesign.us für Fragen in Vorstellungsgesprächen zum Systemdesign, getaggt nach Unternehmen und deren Lösungen. Folgen Sie uns auf YouTube , LinkedIn , Twitter , Medium .
Das Pub/Sub-System ist ein Nachrichtensystem, das es Benutzern ermöglicht, bestimmte Themen zu abonnieren und Nachrichten nur von den Themen zu erhalten, die sie abonniert haben. Dies kann für eine Vielzahl von Anwendungen nützlich sein, wie z. B. soziale Netzwerke, Newsfeeds und Spiele.
Wie funktioniert Pub/Sub?
Der Herausgeber (oder Nachrichtensender) sendet eine Nachricht zu einem bestimmten Thema. Die Nachricht wird dann von allen Abonnenten (oder Nachrichtenempfängern) dieses Themas empfangen. Abonnenten können sich jederzeit von einem Thema abmelden.
Pub/Sub-Komponenten
Es gibt drei Hauptkomponenten in einem Pub/Sub-System:
Themen : Nachrichten sind in Themen organisiert, und Benutzer können bestimmte Themen abonnieren, um die Nachrichten zu erhalten.
Verleger : Verleger sind der Absender der Nachricht und senden Nachrichten zu bestimmten Themen.
Abonnenten : Abonnenten sind die Nachrichtenempfänger und erhalten alle Nachrichten von den Themen, die sie abonniert haben.
Warum Pub/Sub verwenden?
Pub/Sub kann für Anwendungen nützlich sein, die Echtzeitaktualisierungen aus einer Vielzahl von Quellen erfordern. Beispielsweise muss eine App für soziale Netzwerke den Benutzern möglicherweise Updates von ihren Freunden sowie Nachrichten und andere Inhalte anzeigen. Durch die Verwendung von Pub/Sub kann die App all diese Nachrichten in Echtzeit empfangen, ohne ständig neue Daten abrufen zu müssen.
Was sind die Vorteile von Pub/Sub?
Die Verwendung von Pub/Sub hat mehrere Vorteile:
- Echtzeit-Updates: Abonnenten können Nachrichten sofort nach ihrer Veröffentlichung erhalten, ohne auf ein regelmäßiges Abfrageintervall warten zu müssen.
- Flexible Abonnements: Abonnenten können sich dafür entscheiden, nur die Themen zu abonnieren, an denen sie interessiert sind, und können sich jederzeit wieder abmelden.
- Skalierbarkeit: Das Pub/Sub-System kann problemlos skaliert werden, um eine große Anzahl von Themen und Abonnenten zu verarbeiten.
- Es ermöglicht die Echtzeitkommunikation zwischen Herausgebern und Abonnenten.
- Es ist ein skalierbares System, das eine große Anzahl von Themen und Abonnenten verarbeiten kann.
- Es ist flexibel, da die Abonnenten wählen können, zu welchen Themen sie Nachrichten erhalten möchten.
Es gibt einige potenzielle Nachteile bei der Verwendung von Pub/Sub:
- Nachrichtenzustellung ist nicht garantiert: Da Nachrichten asynchron gesendet werden, gibt es keine Garantie, dass sie von allen Abonnenten empfangen werden. Dies bedeutet, dass einige Nachrichten möglicherweise verpasst werden, wenn der Abonnent offline ist oder die Nachricht aus irgendeinem Grund verzögert wird.
- Höhere Latenz: Die asynchrone Nachrichtenübermittlung kann zu einer höheren Latenz führen als die synchrone Nachrichtenübermittlung (z. B. bei einem herkömmlichen Messagingsystem).
- Begrenzter Nachrichtenverlauf: Die meisten Pub/Sub-Systeme verfolgen nur die neuesten Nachrichten für jedes Thema, was bedeutet, dass Abonnenten neue Nachrichten nur erhalten, nachdem sie sich angemeldet haben. Dies kann ein Problem für Anwendungen sein, die einen vollständigen Nachrichtenverlauf benötigen.
- Der Herausgeber muss das Thema der Nachricht kennen, um sie an die richtigen Abonnenten zu senden.
- Abonnenten erhalten möglicherweise Nachrichten, an denen sie nicht interessiert sind, wenn sie zu viele Themen abonnieren.
- Es gibt keine Garantie dafür, dass Nachrichten in der richtigen Reihenfolge oder überhaupt zugestellt werden.
Liste der Pub/Sub-Technologien
- Apache Kafka
- Amazon Simple Notification Service (SNS)
- Google Cloud Pub/Sub
- Microsoft Azure Event Grid
- IBM Cloud Pub/Sub
- NATS-Streaming-Server
- CloudEvents
- MQTT
- STAMPFEN
- Webhooks
- Apache ActiveMQ Artemis
- RabbitMQ

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































