Nachrichtenmuster

Die verteilte Struktur von Cloudanwendungen erfordert eine Messaginginfrastruktur, die die Komponenten und Dienste – idealerweise lose gekoppelt – miteinander verbindet, um die Skalierbarkeit zu maximieren. Asynchrones Messaging ist weit verbreitet und bietet viele Vorteile, beinhaltet aber auch Herausforderungen, beispielsweise die Reihenfolge von Nachrichten, die Verwaltung von nicht verarbeitbaren Nachrichten, Idempotenz und vieles mehr.

Muster Zusammenfassung
Asynchrones Anforderung-Antwort-Muster Entkoppeln Sie die Back-End-Verarbeitung von einem Front-End-Host, wobei die Back-End-Verarbeitung asynchron sein muss, das Front-End jedoch eine eindeutige Antwort benötigt.
Anspruchsprüfung Teilen Sie eine große Nachricht in eine Anspruchsprüfung und eine Nutzlast auf, um die Überlastung eines Nachrichtenbusses zu vermeiden.
Choreographie Sorgen Sie dafür, dass jede Komponente des Systems an der Entscheidungsfindung zum Workflow einer Geschäftstransaktion teilnimmt, anstatt sich auf einen zentralen Steuerungspunkt zu verlassen.
Konkurrierende Consumer Mehreren gleichzeitigen Consumern die Verarbeitung von Nachrichten ermöglichen, die auf dem gleichen Messagingkanal empfangen werden
Pipes und Filter Unterteilen einer Aufgabe, die komplexe Verarbeitungsvorgänge ausführt, in eine Reihe wiederverwendbarer separater Elemente
Prioritätswarteschlange Priorisieren Sie an Dienste gesendete Anforderungen, sodass Anforderungen mit einer höheren Priorität schneller empfangen und verarbeitet werden als Anforderungen mit einer niedrigeren Priorität.
Publisher-Subscriber Ermöglichen Sie einer Anwendung die asynchrone Ankündigung von Ereignissen für mehrere interessierte Consumer, ohne die Absender mit den Empfängern zu koppeln.
Warteschlangenbasierter Lastenausgleich Verwenden Sie eine Warteschlange, die als Puffer zwischen einem Task und einem von diesem aufgerufenen Dienst fungiert, um unregelmäßig auftretende hohe Lasten aufzufangen.
Saga Verwalten der Datenkonsistenz über Microservices hinweg in verteilten Transaktionsszenarien. Das Saga-Muster umfasst eine Sequenz von Transaktionen, die alle Dienste aktualisieren und eine Meldung oder ein Ereignis veröffentlichen, um den nächsten Transaktionsschritt auszulösen.
Scheduler-Agent-Supervisor Koordinieren Sie eine Reihe von Aktionen in einer verteilten Gruppe von Diensten und anderen Remoteressourcen.
Sequenzieller Konvoi Verarbeiten Sie eine Reihe verwandter Nachrichten in einer festgelegten Reihenfolge, ohne die Verarbeitung anderer Nachrichtengruppen zu blockieren.