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

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

启用延迟队列

如果您使用的是处理大量邮件的非常长的队列,请启用延迟队列可以提高您的经纪商的整体绩效。

RabbitMQ 的默认行为是将消息缓存到内存中,并仅在代理需要更多可用内存时才将其移动到磁盘。将消息从内存移动到磁盘的过程可能需要一些时间,并使队列无法处理消息。启用延迟队列可能会对加快将消息移动到磁盘的过程产生重大影响,因为延迟队列尽快将消息存储到磁盘,从而减少内存中缓存的消息。

您可以通过设置queue.declare参数,或通过 RabbitMQ 管理控制台配置策略。以下示例演示使用 RabbitMQ Java 客户端库声明延迟队列。

Map<String, Object> args = new HashMap<String, Object>(); args.put("x-queue-mode", "lazy"); channel.queueDeclare("myqueue", false, false, false, args);
注意

启用延迟队列会增加磁盘 I/O 操作。