我正在尝试在我的 java 应用程序中插入 Open Telemetry,以验证此解决方案是否可用于微服务架构中的请求跟踪。
在我的场景中,“应用程序 A”在 RabbitMQ 队列上生成一条消息,而“应用程序 B”使用来自 RabbitMQ 的消息(两个应用程序都使用 Spring AMQP)。在“应用程序 A”发布的消息中,traceparent 正确存在,它上升到“应用程序 B”。
该消息由BlockingQueueConsumer消费,在其日志中trace_id和span_id正确存在并由 slf4j 记录。BlockingQueueConsumer 然后将消息的处理委托给BlockingQueueConsumer,后者在另一个线程内运行,并且从那里开始,trace_id和span_id丢失。
这是 OpenTelemetry 的正常行为吗?来自不同线程的上下文传播呢?
谢谢达米