如何使用 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
来设置交付模式 属性。
这就是我创建交换并将队列绑定到它的方式
<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
来设置交付模式 属性。