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

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

Amazon MQ for RabbitMQ 大小調整準則

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

  • 用戶端和佇列的數量

  • 傳送的訊息量

  • 訊息保留在記憶體中

  • 備援訊息

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

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

使用單一執行個體部署的規定人數佇列來調整 m7g 的大小準則

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

執行個體類型 連線 頻道 每個頻道的消費者數 佇列 Vhosts 鮑魚
mq.m7g.medium 100 500 1,000 2,500 10 150
mq.m7g.large 5,000 15,000 1,000 20,000 1500 250
mq.m7g.xlarge 10,000 30,000 1,000 30,000 1,500 500
mq.m7g.2xlarge 20,000 60,000 1,000 40,000 1,500 1,000
mq.m7g.4xlarge 40,000 120,000 1,000 60,000 1,500 2,000
mq.m7g.8xlarge 80,000 240,000 1,000 80,000 1,500 4,000
mq.m7g.12xlarge 120,000 360,000 1,000 100,000 1,500 6,000
mq.m7g.16xlarge 160,000 480,000 1,000 120,000 1,500 8,000

使用用於叢集部署的規定人數佇列來調整 m7g 的大小準則

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

執行個體類型 連線 頻道 每個頻道的消費者數 佇列 Vhosts 鮑魚
mq.m7g.medium 100 500 1,000 100 10 50
mq.m7g.large 5,000 15,000 1,000 10,000 1,500 150
mq.m7g.xlarge 10,000 30,000 1,000 15,000 1,500 300
mq.m7g.2xlarge 20,000 60,000 1,000 20,000 1,500 600
mq.m7g.4xlarge 40,000 120,000 1,000 30,000 1,500 1,200
mq.m7g.8xlarge 80,000 240,000 1,000 40,000 1,500 2,400
mq.m7g.12xlarge 120,000 360,000 1,000 50,000 1,500 3,600
mq.m7g.16xlarge 160,000 480,000 1,000 60,000 1,500 4,800

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

執行個體類型 連線 頻道 每個頻道的消費者數 佇列 Vhosts 鮑魚
m5.large 5,000 15,000 30,000 1,000 1500 250
m5.xlarge 10,000 30,000 60,000 1,000 1500 500
m5.2xlarge 20,000 60,000 120,000 1,000 1500 1,000
m5.4xlarge 40,000 120,000 240,000 1500 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 5000 15,000
m5.xlarge 10,000 30,000
m5.2xlarge 20,000 60,000
m5.4xlarge 40,000 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 Management API 格式。

佇列

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

{"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"}