Spring Sleuth不会将traceid和spanid填充到RabbitHandler中

时间:2017-12-20 10:09:47

标签: spring spring-cloud-sleuth

我们想和spring-amqp(rabbitmq)一起使用spring sleuth。 因此,我们通过

在发布商网站上发送消息
amqpTemplate.convertAndSend("exchange", "key", myEvent)

并希望traceidspanid与Rabbit消息一起发送并填充在接收者/侦听器站点上,因此它也将被记录在侦听器站点上。

@RabbitHandler
public void on(MyEvent event) {
  LOGGER.warn("got a message...");
  ...
}

根据this article,我希望这可以开箱即用。

如果我直接检查RabbitMQ消息(通过跟踪),那么我可以看到消息中没有该信息,因此很可能是发件人网站有问题......

我想到的一件事是,我们已配置Jackson2JsonMessageConverter以允许json有效负载:

@Bean
public Jackson2JsonMessageConverter jacksonConverter(ObjectMapper objectMapper) {
    return new Jackson2JsonMessageConverter(objectMapper);
}

顺便说一句。 log4j模式使用%X配置并打印信息(如果可用):

<PatternLayout pattern="%d{HH:mm:ss.SSS} %X [%thread] %-5level %logger{36} - %msg%n" />

我错过了什么?

1 个答案:

答案 0 :(得分:0)

你错过了这句话的最后一段

  

通过Apache Kafka或RabbitMQ(或任何其他Spring Cloud Stream绑定器

)等消息传递技术的请求

侦探无法与RabbitHandler一起使用。在消息传递方面,它仅适用于Spring Integration和Spring Cloud Stream。