使用持久和持久的队列 - Amazon MQ
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用持久和持久的队列

持久消息可以帮助防止在代理崩溃或重新启动的情况下丢失数据。持久性消息一到达就会立即写入磁盘。但是,与懒惰队列不同的是,持久性消息会在内存和磁盘中缓存,除非代理需要更多内存。在需要更多内存的情况下,将通过管理将消息存储到磁盘的 RabbitMQ 代理机制从内存中删除消息,通常称为持久性层

要启用消息持久性,可以将队列声明为durable并将消息传递模式设置为persistent。以下示例演示如何使用RabitMq Java 客户端库声明一个持久队列。

boolean durable = true; channel.queueDeclare("my_queue", durable, false, false, null);

将队列配置为持久队列后,您可以通过设置MessagePropertiesPERSISTENT_TEXT_PLAIN,如以下示例所示。

import com.rabbitmq.client.MessageProperties; channel.basicPublish("", "my_queue", MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes());