本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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"}