如何使用 spring-rabbitmq 将消息标记为持久消息?

how to mark a message as persistent using spring-rabbitmq?

这就是我创建交换并将队列绑定到它的方式

<rabbit:topic-exchange id="dataExchange" name="MQ-EXCHANGE" durable="true">
        <rabbit:bindings>
            <rabbit:binding queue="COMM_QUEUE" pattern="queue.*" />
        </rabbit:bindings>
</rabbit:topic-exchange>

我在互联网上看了很多帖子,上面写着如果要在rabbitmq或队列崩溃的情况下保证消息的安全,也需要将消息标记为持久的。但是我不知道如何将我的消息标记为持久。

这就是我将消息发布到队列的方式

    @Autowired
    private RabbitTemplate template;

    @Override
    public void produceMessage(Object message, String routingKey) {
        template.convertAndSend(routingKey, message);  
    }

我寻找了不同的 API 方法来了解这一点,还尝试寻找我可以在 XML 中配置但找不到方法的任何特定 属性。有什么指导吗?

默认交付模式(在 MessageProperties 中) PERSISTENT。参见 here

要使其成为非持久性,您需要使用 convertAndSend(...) 方法和 MessagePostProcessor 来设置交付模式 属性。