Amazon MQ for RabbitMQ 大小調整準則 - Amazon MQ

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon MQ for RabbitMQ 大小調整準則

您可以選擇最能支援您應用程式的代理程式執行個體類型。選擇執行個體類型時,請務必考量會影響代理程式效能的因素:

  • 用戶端和佇列的數量

  • 傳送的訊息量

  • 訊息保留在記憶體中

  • 備援訊息

建議僅將較小的代理程式執行個體類型 (t3.micro) 用於測試應用程式效能。針對用戶端和佇列的生產層級、高輸送量、記憶體中的訊息和備援訊息,我們建議使用較大的代理程式執行個體類型 (m5.large 和更高版本)。

請務必測試您的代理程式,以判斷適合您工作負載訊息需求的執行個體類型和大小。使用以下大小調整準則來判斷最適合您應用程式的執行個體類型。

單一執行個體部署的大小調整準則

下表顯示單一執行個體代理程式每個執行個體類型的上限值。

執行個體類型 連線 頻道 佇列 每個頻道的消費者數 鏟子
t3.micro 500 1,500 2,500 1,000 150
m5.large 5,000 15,000 30,000 1,000 250
m5.xlarge 10,000 30,000 60,000 1,000 500
m5.2xlarge 20,000 60,000 120,000 1,000 1,000
m5.4xlarge 40,000 120,000 240,000 1,000 2,000

叢集部署的大小調整準則

下表顯示叢集代理程式每個執行個體類型的上限值。

執行個體類型 佇列 每個頻道的消費者數 鏟子
m5.large 10,000 1,000 150
m5.xlarge 15,000 1,000 300
m5.2xlarge 20,000 1,000 600
m5.4xlarge 30,000 1,000 1200

每個節點套用下列連線和頻道限制:

執行個體類型 連線 頻道
m5.large 500 15,000
m5.xlarge 10,000 30,000
m5.2xlarge 20,000 60,000
m5.4xlarge 40,000 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 Management 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"}

Vhost

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