Amazon MQ for RabbitMQ 大小调整指南 - Amazon MQ

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

Amazon MQ for RabbitMQ 大小调整指南

您可以选择最能支持您的应用程序的代理实例类型。选择实例类型时,必须考虑会影响代理性能的因素:

  • 客户端和队列的数量

  • 发送的消息量

  • 保存在内存中的消息

  • 冗余消息

建议仅在测试应用程序性能时使用较小的代理实例类型 (t3.micro)。对于生产级别的客户端和队列、高吞吐量、内存中的消息和冗余消息,我们建议使用较大的代理实例类型(m5.large 及以上)。

请务必测试您的代理,以确定适合您的工作负载消息传递要求的实例类型和大小。使用以下大小调整指南来确定最适合您的应用程序的实例类型。

单实例部署的大小调整指南

下表列出了单实例代理的每种实例类型的最大限制值。

实例类型 连接 渠道 队列 每个通道的使用者数 Shovel
t3.micro 500 1500 2,500 1000 150
m5.large 5000 15000 30000 1000 250
m5.xlarge 10000 30000 60000 1000 500
m5.2xlarge 20000 60000 120,000 1000 1000
m5.4xlarge 40000 120,000 240,000 1000 2000

集群部署的大小调整指南

下表列出了集群代理的每种实例类型的最大限制值。

实例类型 队列 每个通道的使用者数 Shovel
m5.large 10000 1000 150
m5.xlarge 15000 1000 300
m5.2xlarge 20000 1000 600
m5.4xlarge 30000 1000 1200

每个节点适用以下连接和信道限制:

实例类型 连接 渠道
m5.large 500 15000
m5.xlarge 10000 30000
m5.2xlarge 20000 60000
m5.4xlarge 40000 120,000

集群代理的确切限制值可能低于指示值,具体取决于可用节点的数量以及 RabbitMQ 在可用节点之间分配资源的方式。如果超过限制值,则可以创建与其他节点的新连接并重试,也可以升级实例大小以增加最大限制

错误消息

超过限制时,将返回以下错误消息。所有值均基于 m5.large 单实例限制。

注意

以下消息的错误代码可能会根据您使用的客户端库而变化。

Connection

ConnectionClosedByBroker 500 "NOT_ALLOWED - connection refused: node connection limit (500) is reached"

Channel

ConnectionClosedByBroker 1500 "NOT_ALLOWED - number of channels opened on node 'rabbit@ip-10-0-23-173.us-west-2.compute.internal' has reached the maximum allowed limit of (15,000)"

使用者

ConnectionClosedByBroker: (530, 'NOT_ALLOWED - reached maximum (1,000) of consumers per channel')

注意

以下错误消息使用 HTTP 管理 API 格式。

队列

{"error":"bad_request","reason":"cannot declare queue 'my_queue': queue limit in cluster (30,000) is reached"}]

Shovel

{"error":"bad_request","reason":"Validation failed\n\ncomponent shovel is limited to 250 per node\n"}

Vhost

{"error":"bad_request","reason":"cannot create vhost 'my_vhost': vhost limit of 4,000 is reached"}