Diretrizes de dimensionamento do Amazon MQ para RabbitMQ - Amazon MQ

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Diretrizes de dimensionamento do Amazon MQ para RabbitMQ

Você pode escolher o tipo de instância do agente que melhor forneça suporte à aplicação. Ao escolher um tipo de instância, é importante considerar os fatores que afetarão o desempenho do agente:

  • o número de clientes e filas

  • o volume de mensagens enviadas

  • mensagens mantidas na memória

  • mensagens redundantes

Tipos menores de instância do agente (m7g.medium) são recomendados somente para testar o desempenho da aplicação. Recomendamos tipos maiores de instância do agente (m7g.large e superiores) para níveis de produção de clientes e filas, alto throughput, mensagens na memória e mensagens redundantes.

É importante testar os agentes para determinar o tipo e o tamanho da instância adequados para seus requisitos de mensagens de workloads. Use as diretrizes de dimensionamento a seguir para determinar o tipo de instância mais adequado para a aplicação.

Diretrizes de dimensionamento para m7g com filas de quorum para implantação de instância única

A tabela a seguir mostra os valores-limite máximos de cada tipo de instância para agentes de instância única.

Tipo de instância Conexões Canais Consumidores por canal Filas Fantasmas Shovels
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

Diretrizes de dimensionamento para m7g com filas de quorum para implantação de cluster

A tabela a seguir mostra os valores-limite máximos de cada tipo de instância para agentes de cluster.

Tipo de instância Conexões Canais Consumidores por canal Filas Fantasmas Shovels
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

A tabela a seguir mostra os valores-limite máximos de cada tipo de instância para agentes de instância única.

Tipo de instância Conexões Canais Consumidores por canal Filas Fantasmas Shovels
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

A tabela a seguir mostra os valores-limite máximos de cada tipo de instância para agentes de cluster.

Tipo de instância Filas Consumidores por canal Shovels
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

Os seguintes limites de conexão e canal são aplicados por nó:

Tipo de instância Conexões Canais
m5.large 5000 15.000
m5.xlarge 10.000 30.000
m5.2xlarge 20.000 60.000
m5.4xlarge 40.000 120.000

Os valores-limite exatos para um agente de cluster podem ser menores do que o valor indicado, dependendo do número de nós disponíveis e de como o RabbitMQ distribui os recursos entre os nós disponíveis. Se você exceder os valores-limite, poderá criar uma conexão com um nó diferente e tentar outra vez, ou poderá atualizar o tamanho da instância para aumentar os limites máximos.

Mensagens de erro

As mensagens de erro a seguir são exibidas quando os limites são excedidos. Todos os valores são baseados nos limites de instância única m7.large.

nota

Os códigos de erro das mensagens a seguir podem mudar com base na biblioteca de cliente que você estiver usando.

Conexão

ConnectionClosedByBroker 500 "NOT_ALLOWED - connection refused: node connection limit (5000) is reached"

Channel (Canal)

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)"

Consumidor

ConnectionClosedByBroker: (530, 'NOT_ALLOWED - reached maximum (1,000) of consumers per channel')

nota

As mensagens de erro a seguir usam o formato da API de gerenciamento em HTTP.

Queue (Fila)

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