我们想和spring-amqp(rabbitmq)一起使用spring sleuth。 因此,我们通过
在发布商网站上发送消息amqpTemplate.convertAndSend("exchange", "key", myEvent)
并希望traceid
和spanid
与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" />
我错过了什么?
答案 0 :(得分:0)
你错过了这句话的最后一段
通过Apache Kafka或RabbitMQ(或任何其他Spring Cloud Stream绑定器
)等消息传递技术的请求
侦探无法与RabbitHandler
一起使用。在消息传递方面,它仅适用于Spring Integration和Spring Cloud Stream。