为 RabbitMQ 生成的消息设置属性

Setting properties on message produced for RabbitMQ

我们正在使用 spring 云流来为 Rabbitmq 使用和生成消息。

我们需要从传入消息中读取关联 ID 并将其设置在生成的消息中。

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

当使用 MessageBuilder.setHeader() 时,我们能够发送该值,但在兔子管理控制台中它出现在 headers 而不是属性下。

我们的生产者和消费者应用程序都没有使用 spring 云流。

您是否正在设置 AmqpHeaders.CORRELATION_ID header?即映射to/from 属性。如果您使用其他任何东西,它将被设置为 header.

编辑

对我来说很好用...

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

您确定您使用的常数正确吗?