Práticas recomendadas para configuração de agentes e gerenciamento de conexões no Amazon MQ para RabbitMQ
O gerenciamento de conexões e a configuração do agente são a primeira etapa para evitar problemas com a taxa de throughput de mensagens do agente, a utilização de recursos e a capacidade de lidar com workloads de produção. Quando criar e configurar um agente do Amazon MQ para RabbitMQ, complete as práticas recomendadas a seguir para selecionar os tipos de instância apropriados, gerenciar as conexões de forma eficiente e configurar a pré-busca de mensagens para maximizar o desempenho do 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 workloads 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 de agente do 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: Escolher o tipo correto de instância do agente
O throughput de mensagens de um tipo de instância do agente depende do caso de uso da aplicação. M7g.medium só deve ser usado para testar o desempenho da aplicação. Usar essa instância menor antes de usar instâncias maiores na produção pode melhorar o desempenho da aplicação. 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 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 os agente do RabbitMQ na versão 3.13 e posterior. As filas de quórum são um tipo de fila replicada moderna que fornece alta confiabilidade, alto throughput 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, o 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 x-queue-type como quorum quando criar as filas.
Para obter mais informações sobre filas de quórum, incluindo estratégias de migração e práticas recomendadas, 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 por processo e um canal por fio. Evite o uso excessivo de um canal para impedir vazamentos no canal.