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 broker que melhor oferece suporte ao seu aplicativo. Ao escolher um tipo de instância, é importante considerar os fatores que afetarão o desempenho do corretor:

  • o número de clientes e filas

  • o volume de mensagens enviadas

  • mensagens mantidas na memória

  • mensagens redundantes

Tipos menores de instância de broker (t3.micro) são recomendados somente para testar o desempenho do aplicativo. Recomendamos tipos de instância de broker maiores (m5.largee superiores) para níveis de produção de clientes e filas, alta taxa de transferência, mensagens na memória e mensagens redundantes.

É importante testar seus corretores para determinar o tipo e o tamanho de instância apropriados para seus requisitos de mensagens de carga de trabalho. Use as diretrizes de dimensionamento a seguir para determinar o tipo de instância mais adequado para seu aplicativo.

Diretrizes de dimensionamento para implantação em uma única instância

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

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

Diretrizes de dimensionamento para implantação de clusters

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

Tipo de instância Filas Consumidores por canal
m5.large 10.000 1.000
m5.xlarge 15.000 1.000
m5.2xlarge 20.000 1.000
m5.4xlarge 30.000 1.000

Os seguintes limites de conexão, canal e escavadeira são aplicados por nó.

Tipo de instância Conexões Canais Pás
m5.large 500 15.000 50
m5.xlarge 10.000 30.000 100
m5.2xlarge 20.000 60.000 200
m5.4xlarge 40.000 120.000 400

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 recursos entre os nós disponíveis. Se você exceder os valores limite, poderá criar uma nova conexão com um nó diferente e tentar novamente, 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 retornadas quando os limites são excedidos. Todos os valores são baseados nos limites de m5.large uma única instância.

nota

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

Conexão

ConnectionClosedByBroker 500 "NOT_ALLOWED - connection refused: node connection limit (500) 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 API formato HTTP de gerenciamento.

Queue (Fila)

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