Amazon MQ for RabbitMQ 大小调整指南 - Amazon MQ
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon MQ for RabbitMQ 大小调整指南

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

  • 客户端和队列的数量

  • 发送的消息量

  • 保存在内存中的消息

  • 冗余消息

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

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

带有法定队列的 m7g 的规模调整指南,用于单实例部署

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

实例类型 连接 渠道 每个通道的使用者数 队列 Vhosts Shovel
mq.m7g.medium 100 500 1000 2,500 10 150
mq.m7g.large 5000 15000 1000 20000 1500 250
mq.m7g.xlarge 10000 30000 1000 30000 1500 500
mq.m7g.2xlarge 20000 60000 1000 40000 1500 1000
mq.m7g.4xlarge 40000 120,000 1000 60000 1500 2000
mq.m7g.8xlarge 80,000 240,000 1000 80,000 1500 4,000
mq.m7g.12xlarge 120,000 360,000 1000 100000 1500 6000
mq.m7g.16xlarge 160000 480,000 1000 120,000 1500 8000

集群部署中包含法定队列的 m7g 的规模调整指南

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

实例类型 连接 渠道 每个通道的使用者数 队列 Vhosts Shovel
mq.m7g.medium 100 500 1000 100 10 50
mq.m7g.large 5000 15000 1000 10000 1500 150
mq.m7g.xlarge 10000 30000 1000 15000 1500 300
mq.m7g.2xlarge 20000 60000 1000 20000 1500 600
mq.m7g.4xlarge 40000 120,000 1000 30000 1500 1,200
mq.m7g.8xlarge 80,000 240,000 1000 40000 1500 2400
mq.m7g.12xlarge 120,000 360,000 1000 50000 1500 3600
mq.m7g.16xlarge 160000 480,000 1000 60000 1500 4,800

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

实例类型 连接 渠道 每个通道的使用者数 队列 Vhosts Shovel
m5.large 5000 15000 30000 1000 1500 250
m5.xlarge 10000 30000 60000 1000 1500 500
m5.2xlarge 20000 60000 120,000 1000 1500 1000
m5.4xlarge 40000 120,000 240,000 1500 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 5000 15000
m5.xlarge 10000 30000
m5.2xlarge 20000 60000
m5.4xlarge 40000 120,000

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

错误消息

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

注意

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

Connection

ConnectionClosedByBroker 500 "NOT_ALLOWED - connection refused: node connection limit (5000) 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 (10,000) is reached"}]

Shovel

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

Vhost

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