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á.
Melhores práticas para configuração de agentes e gerenciamento de conexões no Amazon MQ para RabbitMQ
A configuração e o gerenciamento de conexões do agente são a primeira etapa para evitar problemas com a taxa de transferência de mensagens do agente, a utilização de recursos e a capacidade de lidar com cargas de trabalho de produção. Ao criar e configurar um agente do Amazon MQ para RabbitMQ, siga as seguintes melhores práticas para selecionar os tipos de instância apropriados, gerenciar conexões de forma eficiente e configurar a pré-busca de mensagens para maximizar o desempenho do seu agente.
Importante
O Amazon MQ para RabbitMQ não permite o nome de usuário “convidado” e excluirá a conta de convidado padrão quando você criar um agente. O Amazon MQ também excluirá periodicamente qualquer conta de “convidado” criada pelo cliente.
Etapa 1: usar implantações de cluster
Para cargas de trabalho de produção, recomendamos o uso de implantações de cluster em vez de agentes de instância única para garantir alta disponibilidade e resiliência de mensagens. As implantações de cluster removem pontos únicos de falha e oferecem melhor tolerância a falhas.
As implantações de cluster consistem em três nós do broker RabbitMQ distribuídos em três zonas de disponibilidade, fornecendo failover automático e garantindo que as operações continuem mesmo se uma zona de disponibilidade inteira ficar indisponível. O Amazon MQ replica automaticamente as mensagens em todos os nós para garantir a disponibilidade durante falhas ou manutenção dos nós.
As implantações de clusters são essenciais para ambientes de produção e são suportadas pelo Acordo de Nível de Serviço do Amazon MQ
Para obter mais informações, consulte Implantação de clusters no Amazon MQ para RabbitMQ.
Etapa 2: escolha o tipo correto de instância do broker
A taxa de transferência de mensagens de um tipo de instância do broker depende do caso de uso do seu aplicativo. M7g.medium
só deve ser usado para testar o desempenho do aplicativo. Usar essa instância menor antes de usar instâncias maiores na produção pode melhorar o desempenho do aplicativo. Em tipos de instância m7g.large
e superiores, você pode usar implantações de cluster para obter alta disponibilidade e durabilidade de mensagens. Tipos maiores de instância do agente conseguem lidar com níveis de produção de clientes e filas, alto throughput, mensagens na memória e mensagens redundantes.
Para obter mais informações sobre como escolher o tipo de instância correto, consulte as diretrizes de dimensionamento no Amazon MQ para RabbitMQ.
Etapa 3: usar filas de quórum
As filas de quórum, com implantação de cluster, devem ser a escolha padrão para tipos de fila replicados em ambientes de produção para corretores RabbitMQ na versão 3.13 e superior. As filas de quórum são um tipo moderno de fila replicada que fornece alta confiabilidade, alta taxa de transferência e latência estável.
As filas de quórum usam o algoritmo de consenso Raft para fornecer melhor tolerância a falhas. Quando o nó líder fica indisponível, as filas de quórum elegem automaticamente um novo líder por maioria de votos, garantindo que a entrega de mensagens continue com o mínimo de interrupção. Como cada nó está em uma zona de disponibilidade diferente, seu sistema de mensagens permanece disponível mesmo que uma zona de disponibilidade inteira fique temporariamente indisponível.
Para declarar uma fila de quórum, defina o cabeçalho como x-queue-type
quorum
ao criar suas filas.
Para obter mais informações sobre filas de quórum, incluindo estratégias de migração e melhores práticas, consulte Filas de quórum no Amazon MQ para RabbitMQ.
Etapa 4: usar vários canais
Para evitar a perda de conexão, use vários canais em uma única conexão. As aplicações devem evitar uma relação de conexão de 1:1 com o canal. Recomendamos usar uma conexão para cada processo e, em seguida, um canal para cada thread. Evite o uso excessivo de um canal para impedir vazamentos no canal.