Publish-Subscribe (Pub/Sub)
Ein Kommunikationsmuster, das es ermöglicht, dass Publisher Nachrichten an einen Kanal senden, während Subscriber über diesen Kanal informiert werden.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypTechnisch
- OrganisationsreifeReif
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Verlust von Nachrichten bei Fehlern
- Sicherheitsrisiken bei offenen Kanälen
- Notwendigkeit der Überwachung
- Verwenden Sie einfache Nachrichtenformate.
- Implementieren Sie Fehlerbehandlung für Nachrichtenverlust.
- Nutzen Sie Monitoring-Tools.
I/O & Ressourcen
- Datenströme
- Ereignismeldungen
- Nutzeranfragen
- Benachrichtigungen
- Datenanalysen
- Feedbackberichte
Beschreibung
Das Publish-Subscribe-Muster (Pub/Sub) ermöglicht die Entkopplung von Sendern und Empfängern von Nachrichten. Es findet Anwendung in verteilten Systemen, wo asynchrone Kommunikationsmechanismen erforderlich sind. Pub/Sub verbessert die Skalierbarkeit und Flexibilität in der Systemarchitektur.
✔Vorteile
- Erhöhte Skalierbarkeit
- Verbesserte Flexibilität
- Entkopplung von Sendern und Empfängern
✖Limitationen
- Komplexität des Nachrichtenmanagements
- Potenzielle Verzögerungen in der Nachrichtenübermittlung
- Anforderungen an die Systemkonfiguration
Trade-offs
Metriken
- Nachrichtenverarbeitungszeit
Die Zeit, die benötigt wird, um eine Nachricht zu verarbeiten.
- Systemverfügbarkeit
Die Verfügbarkeit des Systems während des Betriebs.
- Skalierbarkeitstest
Ein Test zur Bewertung der Skalierungsfähigkeiten.
Beispiele & Implementierungen
Lieferverfolgung in Echtzeit
Ein Beispiel, wie das Pub/Sub-Muster in einer App zur Verfolgung von Lieferungen verwendet wird.
Kommentarsystem für Blogs
Anwendung des Pub/Sub-Musters um Benachrichtigungen für neue Kommentare zu senden.
Echtzeit-Datenanalyse in IoT
Verwendung des Pub/Sub-Musters in IoT-Anwendungen zur Analyse von Sensordaten.
Implementierungsschritte
Definieren Sie die Nachrichtenformate.
Implementieren Sie Publisher und Subscriber.
Testen Sie die Nachrichtenübermittlung.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veraltete Bibliotheken für Nachrichtenübertragung.
- Mangelnde Modularität der Komponenten.
- Nicht dokumentierte Systemabhängigkeiten.
Bekannte Engpässe
Beispiele für Missbrauch
- Verwendung von komplexen Datenstrukturen in Nachrichten.
- Ignorieren von Sicherheitsanforderungen.
- Unzureichende Tests vor der Produktivsetzung.
Typische Fallen
- Übermäßige Komplexität bei der Implementierung.
- Unzureichende Fehlerprotokollierung.
- Verwaltung von Legacy-Systemen, die nicht kompatibel sind.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Abhängigkeit von Netzwerkverfügbarkeit
- • Notwendigkeit der Synchronisation
- • Einhaltung von Datenschutzbestimmungen