如何在 SQS 中发送和使用 sleuth traceId

How to send and consume sleuth traceId in SQS

我正在使用 spring-cloud-sleuth.version:3.0.4spring-cloud-aws-messaging:2.2.6.RELEASE

它使用 HTTP 请求正确传播跟踪 ID。

但是,它似乎不适用于 SQS。

有什么方法可以通过 SQS 通信自动发送和使用 sleuth traceId。

Spring Cloud AWS 现在是一个社区项目,请参阅:https://awspring.io/ Spring Cloud (2020.x) 的当前版本系列,您可以在其中找到 Sleuth 3.x,但 include/support 没有。

对于 Spring Cloud (2020.x) 的当前发布系列,您应该使用 io.awspring.cloud:spring-cloud-aws-messaging:2.3.x 而不是 org.springframework.cloud:spring-cloud-aws-messaging:2.2.x

由于这些原因,Sleuth 不会直接检测 Spring AWS Messaging,但如果您可以以与已检测的 Spring Integration/Messaging/Stream/something 集成的方式使用 SQS,这可能工作;即:我会尝试使用 QueueMessageChannel 和注释,我认为 QueueMessagingTemplate 行不通。

您可以做的另一件事是手动检测它并在 headers 中传播跟踪信息,请参阅:TraceSpringMessagingAutoConfiguration