Sleuth traceId 和 spanId 未登录到 activeMQ 侦听器
Sleuth traceId and spanId not logged in activeMQ Listener
我正在尝试使用 Sleuth 和 ActiveMQ 配置微服务。
启动请求时,我可以在生产者的日志中正确看到 appName、traceId 和 spanId,但是在将消息从侦听器中取出后,我只找到 appName,没有 traceId 和 spanId。
我怎样才能填写这些字段?
现在我正在使用 spring.sleuth.messaging.jms.enabled=false 以避免在启动时出现此异常:
- 名为 'connectionFactory' 的 Bean 应为 'org.apache.activemq.ActiveMQConnectionFactory' 类型,但实际上是 'org.springframework.cloud.sleuth.instrument.messaging.LazyConnectionFactory'
类型
我的依赖项:
org.springframework.boot.spring-boot-starter-activemq 2.5.1
org.springframework.cloud.spring-云侦探 3.0.3
谢谢大家!
我的理解是,您要查找的属性是在发送消息时在 JMS 消息 上设置的,然后在使用消息时从消息中检索。由于您正在设置 spring.sleuth.messaging.jms.enabled=false
,因此您正在禁用此功能。请参阅 the documentation 其中指出:
We instrument the JmsTemplate
so that tracing headers get injected into the message. We also support @JmsListener
annotated methods on the consumer side.
To block this feature, set spring.sleuth.messaging.jms.enabled
to false
.
如果您想将 Sleuth 与 Spring JMS 一起使用,则需要找到连接工厂问题的替代解决方案。如果你在某处注入 org.apache.activemq.ActiveMQConnectionFactory
那么你几乎肯定应该使用 javax.jms.ConnectionFactory
来代替。使用具体类型不利于可移植性和像这样动态使用包装器实现的用例。
我正在尝试使用 Sleuth 和 ActiveMQ 配置微服务。 启动请求时,我可以在生产者的日志中正确看到 appName、traceId 和 spanId,但是在将消息从侦听器中取出后,我只找到 appName,没有 traceId 和 spanId。 我怎样才能填写这些字段?
现在我正在使用 spring.sleuth.messaging.jms.enabled=false 以避免在启动时出现此异常:
- 名为 'connectionFactory' 的 Bean 应为 'org.apache.activemq.ActiveMQConnectionFactory' 类型,但实际上是 'org.springframework.cloud.sleuth.instrument.messaging.LazyConnectionFactory' 类型
我的依赖项:
org.springframework.boot.spring-boot-starter-activemq 2.5.1
org.springframework.cloud.spring-云侦探 3.0.3
谢谢大家!
我的理解是,您要查找的属性是在发送消息时在 JMS 消息 上设置的,然后在使用消息时从消息中检索。由于您正在设置 spring.sleuth.messaging.jms.enabled=false
,因此您正在禁用此功能。请参阅 the documentation 其中指出:
We instrument the
JmsTemplate
so that tracing headers get injected into the message. We also support@JmsListener
annotated methods on the consumer side.To block this feature, set
spring.sleuth.messaging.jms.enabled
tofalse
.
如果您想将 Sleuth 与 Spring JMS 一起使用,则需要找到连接工厂问题的替代解决方案。如果你在某处注入 org.apache.activemq.ActiveMQConnectionFactory
那么你几乎肯定应该使用 javax.jms.ConnectionFactory
来代替。使用具体类型不利于可移植性和像这样动态使用包装器实现的用例。