View a markdown version of this page

Configuração do limite de recursos - 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á.

Configuração do limite de recursos

O Amazon MQ para RabbitMQ suporta a configuração de limites de recursos do agente a partir do RabbitMQ 4. Quando você cria um agente, o Amazon MQ aplica automaticamente valores padrão a esses limites de recursos. Esses padrões atuam como barreiras para proteger a disponibilidade de seu corretor e, ao mesmo tempo, acomodar os padrões comuns de uso do cliente. Você pode personalizar o comportamento do seu agente alterando os valores de configuração limite para melhor atender aos seus requisitos específicos de carga de trabalho. Para obter mais detalhes sobre os valores padrão e máximos permitidos, consulteDiretrizes de dimensionamento do Amazon MQ para RabbitMQ.

Nomes de recursos e chaves de configuração

Nome do recurso Chave de configuração
Conexão connection_max
Canal channel_max_per_node
Fila cluster_queue_limit
Vhost vhost_max
Shovel runtime_parameters.limits.shovel
Exchange cluster_exchange_limit
Consumidor por canal consumer_max_per_channel
Tamanho máximo de mensagem max_message_size

Como substituir os limites de recursos

Você pode substituir os limites de recursos usando a API do Amazon MQ e o console do Amazon MQ.

O exemplo a seguir mostra como substituir o limite padrão de contagem de filas usando: AWS CLI

aws mq update-configuration --configuration-id <config-id> --data "$(echo "cluster_queue_limit=500" | base64 --wrap=0)"

Uma invocação bem-sucedida cria uma revisão de configuração. Você deve associar a configuração ao seu broker RabbitMQ e reinicializar o broker para aplicar a substituição. Para obter mais detalhes, consulte RabbitMQ Broker Configurations

Suporte à seção específica da instância na configuração

Com o RabbitMQ 4, o Amazon MQ oferece suporte a seções nos dados de configuração. As seções permitem que você defina limites de recursos específicos da instância em uma única configuração. Cada seção corresponde a uma combinação específica de tipo de instância e modo de implantação. Quando você associa a configuração a um agente, o Amazon MQ aplica automaticamente a seção correspondente ao tipo de instância e ao modo de implantação do agente.

Importante

O suporte de seção está disponível apenas no RabbitMQ 4. Se você tentar aplicar uma configuração que contenha seções a um broker RabbitMQ 3, a API retornará a. BadRequestException

Sintaxe da seção

As seções são delimitadas por colchetes duplos com o seguinte formato:

{{<host-instance-family>.<size>.<mode>}}

O mode valor indica o modo de implantação:

  • 1— Corretor de instância única

  • 3— Corretor de clusters

Qualquer outro valor de modo é inválido e a API retorna um erro.

O exemplo a seguir mostra dados de configuração com seções para dois tipos diferentes de instância:

connection_max = 1000 {{m7g.large.3}} connection_max = 2000 {{m7g.large.3}} {{m7g.xlarge.3}} connection_max = 4000 {{m7g.xlarge.3}}

Chaves de configuração permitidas nas seções

Somente as seguintes chaves de configuração de limite de recursos são suportadas em uma seção. Adicionar qualquer outra chave de configuração dentro de uma seção resulta em um erro de API.

  • max_message_size

  • channel_max_per_node

  • connection_max

  • cluster_queue_limit

  • vhost_max

  • consumer_max_per_channel

  • runtime_parameters.limits.shovel

  • cluster_exchange_limit

Regras de precedência de seção

Quando uma chave de configuração aparece na seção genérica (nível superior) e na seção específica da instância, o valor que aparece posteriormente nos dados de configuração tem precedência. Por exemplo, a aplicação da seguinte configuração a um agente de m7g.large cluster define connection_max como2000:

connection_max = 1000 {{m7g.large.3}} connection_max = 2000 {{m7g.large.3}}

Invertendo a ordem definida connection_max como1000, porque o valor genérico vem por último:

{{m7g.large.3}} connection_max = 2000 {{m7g.large.3}} connection_max = 1000
nota

Se os dados de configuração não definirem valores para um determinado tipo de instância, o Amazon MQ aplicará os valores padrão.

Exemplos

Os exemplos a seguir mostram como criar uma configuração com seções e associá-la a um broker usando AWS CLI o.

Para atualizar uma configuração com seções

Execute o comando a seguir para atualizar uma configuração com limites de recursos específicos da instância para vários tipos de instância:

aws mq update-configuration \ --configuration-id <config-id> \ --data "$(echo -e "connection_max = 1000\nchannel_max_per_node = 64\n\n{{m7g.large.3}}\nconnection_max = 2000\nchannel_max_per_node = 128\n{{m7g.large.3}}\n\n{{m7g.xlarge.3}}\nconnection_max = 4000\nchannel_max_per_node = 256\n{{m7g.xlarge.3}}" | base64 --wrap=0)"

Essa configuração define os seguintes valores:

  • Padrões genéricos: e connection_max = 1000 channel_max_per_node = 64

  • m7g.largecorretores de cluster: connection_max = 2000 e channel_max_per_node = 128

  • m7g.xlargecorretores de cluster: connection_max = 4000 e channel_max_per_node = 256

Para associar a configuração a um broker

Depois de atualizar a configuração, associe-a ao seu broker e reinicialize o broker para aplicar as alterações. Execute este comando: .

aws mq update-broker \ --broker-id <broker-id> \ --configuration id=<config-id>,revision=<revision-number>

Erros de substituição do limite de recursos

Associar ou criar um agente com valores de configuração fora do intervalo suportado resulta em uma resposta de erro semelhante à seguinte:

Configuration Revision N for configuration:cluster_queue_limit has limit: of value: 100000000 larger than maximum allowed limit:5000

Para valores padrão e intervalos máximos suportados por tipo de instância e modo de implantação, consulte Limites de recursos padrão Limite máximo de recursos do Amazon MQ para RabbitMQ e.