在为RabbitMQ生成的消息上设置属性

时间:2019-01-25 12:33:35

标签: spring-cloud-stream spring-rabbitmq

我们正在使用春季云流来消费和产生Rabbitmq的消息。

我们需要从传入消息中读取相关性ID,并将其设置在产生的消息上。

我们可以使用message.getHeaders()读取相同内容,但是如何在外发消息上进行设置?

使用MessageBuilder.setHeader()时,我们可以发送该值,但是在Rabbit管理控制台中,它显示在标题而不是属性下。

我们的生产者和消费者应用程序都没有使用Spring Cloud Stream。

1 个答案:

答案 0 :(得分:0)

您是否设置了AmqpHeaders.CORRELATION_ID标头?那是映射到属性或从属性映射的。如果您还有其他用途,它将被设置为标题。

编辑

对我来说很好...

@Bean
public ApplicationRunner runner(MessageChannel output) {
    return args -> output.send(new GenericMessage<>("foo",
            Collections.singletonMap(AmqpHeaders.CORRELATION_ID, "foo")));
}

enter image description here

确定使用正确的常量吗?