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

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

亚马逊 MQ for RabbitMQ 尺码指南

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

  • 客户机和队列的数量

  • 发送的消息量

  • 消息保存在内存中

  • 冗余消息

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

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

单实例部署的大小指南

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

实例类型 连接 渠道 队列 每个渠道的消费者 铲子
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

集群部署的大小指南

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

实例类型 队列 每个渠道的消费者
m5.large 10000 1000
m5.xlarge 15000 1000
m5.2xlarge 20000 1000
m5.4xlarge 30000 1000

以下连接、通道和铲子限制适用于每个节点。

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

集群代理的确切限制值可能低于指定值,具体取决于可用节点的数量以及 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"}]

铲子

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

虚拟主机

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