Ich habe einen Dienst A, der eine E-Mail erstellt und sie an einen Kunden sendet. Der Kunde erhält die E-Mail und klickt schließlich auf den Link im Body, um Service B auszulösen.spring cloud sleuth: manuell ausgelöste Async-Dienste
Wie kann ich zwei verschiedene und vollständig isolierte Services, die Teil desselben Geschäftsprozesses sind, mit sleuth korrelieren?
Sollte ich die Spanne "geöffnet" lassen oder gibt es eine Möglichkeit, die Trace-ID irgendwie in die E-Mail einzubetten?
Genau, das sind zwei vollständig getrennte Dienste, daher ist es absolut sinnvoll, dass das, was sie bindet, die Trace-ID ist. Die einzige Sache ist, dass ich nicht sicher bin, wie man die Verfolgung Identifikation übergibt, da der zweite Service zeitlich zufällig vom Benutzer vom Link auf dem email Körper ausgelöst wird. Dies ist kein typisches Microservices-Paradigma, bei dem Services miteinander kommunizieren oder auf Datenleitungen reagieren. Diese Dienste sind völlig unabhängig, aber sie sollten die gleiche Ablaufverfolgungs-ID in den Protokollen anzeigen. – pgs
Sie müssen diese Information irgendwo speichern - es gibt keinen anderen Weg, leider:/Sie können den (hazed?) Traceid vielleicht in der E-Mail-Link übergeben? –
Das war meine erste Schätzung. In diesem Fall muss ich es wirklich speichern oder weitergeben. Würden Sie dann empfehlen, Traces und Bereiche deklarativ im Code zu verwenden, anstatt sich auf Annotationen und Executoren zu verlassen? – pgs