Messaging
Messaging ist ein Konzept, das den Austausch von Informationen zwischen Systemen oder Benutzern ermöglicht.
Klassifikation
- KomplexitätMittel
- AuswirkungOrganisatorisch
- EntscheidungstypArchitektur
- OrganisationsreifeReif
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Abhängigkeiten zwischen Diensten
- Verlust von Nachrichten
- Sicherheitsbedenken
- Verwenden Sie standardisierte Nachrichtenformate.
- Implementieren Sie Fehlerbehandlung.
- Überwachen Sie die Messaging-Leistung.
I/O & Ressourcen
- Benutzereingabe
- Systemdaten
- Ereignisquellen
- Nachricht gesendet
- Datenübertragung vollzogen
- Benutzerbenachrichtigung
Beschreibung
Messaging ermöglicht eine asynchrone Kommunikation zwischen verschiedenen Anwendungen und Systemen. Es fördert die Entkopplung von Diensten und verbessert die Interoperabilität durch definierte Nachrichtenformate. Diese Flexibilität unterstützt die Skalierbarkeit und Robustheit von Anwendungen.
✔Vorteile
- Erhöhte Skalierbarkeit
- Bessere Fehlertoleranz
- Flexibilität bei der Integration
✖Limitationen
- Erfordert zusätzliche Infrastruktur
- Komplexe Fehlersuche
- Mögliche Latenzzeiten
Trade-offs
Metriken
- Nachrichtengewicht
Das durchschnittliche Gewicht der gesendeten Nachrichten.
- Verarbeitungszeit
Die durchschnittliche Zeit, die benötigt wird, um eine Nachricht zu verarbeiten.
- Durchsatz
Anzahl der Nachrichten, die pro Zeiteinheit verarbeitet werden.
Beispiele & Implementierungen
Messaging in Microservices
Ein Beispiel für die Verwendung von Messaging zur Entkopplung von Microservices.
Benachrichtigungsdienste
Ein Dienst, der Benutzern Echtzeit-Benachrichtigungen sendet.
Ereignisgesteuerte Architekturen
Verwendung von Messaging in einer ereignisgesteuerten Architektur.
Implementierungsschritte
Definieren Sie die Anforderungen für das Messaging.
Wählen Sie ein Messaging-Protokoll aus.
Implementieren Sie die Messaging-Logik.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veraltete Bibliotheken verwenden.
- Schlechte Dokumentation pflegen.
- Unzureichende Tests durchführen.
Bekannte Engpässe
Beispiele für Missbrauch
- Nachrichten nicht validieren.
- Übermäßige Abhängigkeiten schaffen.
- Keine Wiederholungsmechanismen implementieren.
Typische Fallen
- Zu viele Nachrichten erzeugen.
- Benutzeroberfläche überladen.
- Nachrichten nicht protokollieren.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Erfordert Netzwerkbedingungen für Echtzeit-Kommunikation.
- • Einschränkungen bei der Nachrichtengröße.
- • Verfügbarkeitsanforderungen.