发送到RabbitMq后如何获取messageId?

时间:2018-03-28 13:43:52

标签: spring-boot rabbitmq amqp spring-amqp

当我发送到Rabbit Mq Queue时,我想要一些messageId,我将在使用jms发送到IBM MQ时获得。我在Spring Boot中使用spring MQ amqp starter依赖项。配置仅在application.yml(属性文件)中完成。我正在使用Rabbit模板进行发送。

rabbitMqTemplate.convertAndSend(EMPTY_STRING,queueName, message, messagePostProcessor);

我试过了messagePostProcessor。任何帮助表示赞赏。我看了下面的内容。但不明白如何实施。是否需要特殊配置(connectionfactory / container)?

https://www.rabbitmq.com/confirms.html

1 个答案:

答案 0 :(得分:1)

与JMS不同,兔子客户端不会分配消息ID。

但是,您可以配置RabbitTemplate' MessageConverter来创建一个ID,然后您可以使用后处理器检索。

请参阅AbstractMessageConverter ...

/**
 * Flag to indicate that new messages should have unique identifiers added to their properties before sending.
 * Default false.
 * @param createMessageIds the flag value to set
 */
public void setCreateMessageIds(boolean createMessageIds) {
    this.createMessageIds = createMessageIds;
}

有关消息确认,请参阅reference manual。但这与消息id属性无关。