0

我们想将 spring sleuth 与 spring-amqp (rabbitmq) 一起使用。因此,我们通过在发布者网站上发送消息

amqpTemplate.convertAndSend("exchange", "key", myEvent)

并期望traceidspanid兔子消息一起发送并填充在接收器/听众站点上,因此它也会记录在听众站点上。

@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" />

我错过了什么?

4

1 回答 1

0

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

通过 Apache Kafka 或 RabbitMQ(或任何其他 Spring Cloud Stream binder)等消息传递技术请求

侦探不适用于RabbitHandler. 在消息传递方面,它仅适用于 Spring Integration 和 Spring Cloud Stream。

于 2017-12-20T10:26:48.387 回答