代理默认设置 - Amazon MQ
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

代理默认设置

当您为 RabbitMQ 代理创建 Amazon MQ 时,Amazon MQ 会应用一组默认的代理策略和虚拟主机限制来优化代理的性能。Amazon MQ 仅将虚拟主机限制应用于默认的(/)虚拟主机。Amazon MQ 不会将默认策略应用于新创建的虚拟主机。建议为所有新的和现有的代理保留这些默认值。但是,您可以随时修改、覆盖或删除这些默认设置。

Amazon MQ 根据您在创建代理时选择的实例类型和代理部署模式创建策略和限制。默认策略根据部署模式命名,如下所示:

  • 单实例AWS-DEFAULT-POLICY-SINGLE-INSTANCE

  • 集群部署AWS-DEFAULT-POLICY-CLUSTER-MULTI-AZ

对于单实例代理,Amazon MQ 会将策略优先级值设置为 0。要覆盖默认优先级值,可以创建具有较高优先级值的自定义策略。对于集群部署,Amazon MQ 将优先级值设置为代理默认值 1。要为集群创建您自己的自定义策略,请分配一个大于 1 的优先级值。

注意

在集群部署中,经典镜像和高可用性(HA)需要 ha-modeha-sync-mode 代理策略。

如果删除默认 AWS-DEFAULT-POLICY-CLUSTER-MULTI-AZ 策略,Amazon MQ 将使用 ha-all-AWS-OWNED-DO-NOT-DELETE 策略,优先级值为 0。这可以确保所需的 ha-modeha-sync-mode 策略仍然有效。如果您创建自己的自定义策略,Amazon MQ 自动将 ha-modeha-sync-mode 添加到您的策略定义。

策略和限制说明

以下列表描述了 Amazon MQ 应用于新创建的代理的默认策略和限制。max-lengthmax-queuesmax-connections 的值因代理的实例类型和部署模式而异。这些值列于建议的默认值部分。

  • queue-mode: lazy(策略)– 启用延迟队列。默认情况下,队列会在内存中保留消息缓存,从而使代理能够尽快将消息传递给使用者。这可能会导致代理内存不足并引发高内存警报。延迟队列尝试在可行的情况下尽早将消息移动到磁盘。这意味着在正常操作条件下保留在内存中的消息更少。使用延迟队列,Amazon MQ for RabbitMQ 可以支持更大的邮件负载和更长的队列。请注意,对于某些用例,具有延迟队列的代理可能会稍慢一些。这是因为消息从磁盘移动到代理,而不是从内存中的缓存传递消息。

    部署模式

    单实例、集群

  • max-length: number-of-messages(策略)– 设置队列中的消息数量的限制。在集群部署中,该限制可防止在代理重启或维护时段之后暂停队列同步。

    部署模式

    集群

  • overflow: reject-publish(策略)– 使用 max-length 策略强制队列在队列中的消息数达到 max-length 值后拒绝新消息。为了确保队列处于溢出状态时消息不会丢失,向代理发布消息的客户端应用程序必须实施发布者确认。有关实施发布者确认的信息,请参阅 RabbitMQ 网站上的发布者确认

    部署模式

    集群

  • max-queues: number-of-queues-per-vhost(虚拟主机限制)– 设置代理中队列数的限制。与max-length策略定义类似,限制集群部署中的队列数量可防止在代理重新启动或维护时段后暂停队列同步。限制队列还可防止过多使用 CPU 来维护队列。

    部署模式

    单实例、集群

  • max-connections: number-of-connections-per-vhost(虚拟主机限制)– 设置连接代理的客户端数量限制。根据建议的值限制连接数可防止使用过多的代理内存,以免导致代理产生高内存警报和暂停操作。

    部署模式

    单实例、集群

建议的默认值

注意

max-lengthmax-queue 默认限制将根据平均邮件大小 5KB 进行测试和评估。如果您的消息大于 5KB,则需要调整和减少 max-lengthmax-queue 限制。

下表列出了新创建的代理的默认限制值。Amazon MQ 根据代理的实例类型和部署模式应用这些值。

实例类型 Deployment mode (部署模式) max-length max-queues max-connections
t3.micro 单实例 不适用 500 500
m5.large 单实例 不适用 20000 4,000
集群 80000,000 4,000 15000
m5.xlarge 单实例 不适用 30000 8000
集群 90000,000 5000 20000
m5.2xlarge 单实例 不适用 60000 15000
集群 10,000,000 6000 40000
m5.4xlarge 单实例 不适用 15万 30000
集群 12,000,000 10000 100000