Kann mir jemand Beispiele geben, wie in der Produktion eine Korrelations-ID verwendet werden kann?
Ich habe gelesen, dass es in Anfrage / Antwort-Nachrichten verwendet wird, aber ich verstehe nicht, wo ich es verwenden würde?
Ein Beispiel (was vielleicht falsch ist) kann ich in einem Publish Subscribe-Szenario denken, wo ich 5 Abonnenten haben könnte und wenn ich 5 Antworten mit der gleichen Korrelations-ID bekomme, könnte ich sagen, dass alle meine Abonnenten es erhalten haben. Ich bin mir nicht sicher, ob dies die korrekte Verwendung ist.
Oder wenn ich eine einfache Nachricht sende, kann ich die Korrelation verwenden, um zu garantieren, dass der Client sie erhalten hat.
Irgendwelche anderen Beispiele?
Eine Webanwendung, die eine HTTP-API für Außenstehende bereitstellt, um eine Verarbeitungsaufgabe auszuführen, und Sie möchten die Ergebnisse für den Aufrufer als Antwort auf die von ihnen erstellte HTTP-Anforderung angeben.
Eine Anfrage kommt, eine Nachricht, die die Aufgabe beschreibt, wird vom Frontend-Server in die Warteschlange geschoben. Danach blockiert der Frontend-Server, um auf eine Antwortnachricht mit derselben Korrelations-ID zu warten. Ein Pool von Arbeitsmaschinen hört auf die Warteschlange und einer von ihnen nimmt die Aufgabe auf, führt sie aus und gibt das Ergebnis als Nachricht zurück. Sobald eine Nachricht mit der richtigen Korrelations-ID eingeht, gibt der Front-End-Server weiterhin die Antwort an den Aufrufer zurück.
Im Kontext von CQRS und EventSourcing wird höchstwahrscheinlich eine ID-ID für eine Befehlsnachricht gespeichert zusammen mit den entsprechenden Ereignissen aus der Domäne. Diese Informationen können später verwendet werden, um einen Prüfpfad zu erstellen.
Tags und Links rabbitmq amqp message-queue cqrs nservicebus