我们想将 spring sleuth 与 spring-amqp (rabbitmq) 一起使用。因此,我们通过在发布者网站上发送消息
amqpTemplate.convertAndSend("exchange", "key", myEvent)
并期望traceid
与spanid
兔子消息一起发送并填充在接收器/听众站点上,因此它也会记录在听众站点上。
@RabbitHandler
public void on(MyEvent event) {
LOGGER.warn("got a message...");
...
}
根据这篇文章,我希望这可以开箱即用。
如果我直接(通过跟踪)检查 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" />
我错过了什么?