Melhores práticas para resiliência e monitoramento de rede no 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á.

Melhores práticas para resiliência e monitoramento de rede no Amazon MQ para RabbitMQ

A resiliência da rede e as métricas do agente de monitoramento são essenciais para manter aplicativos de mensagens confiáveis. Complete as seguintes melhores práticas para implementar mecanismos de recuperação automática e estratégias de monitoramento de recursos.

Etapa 1: Recuperação automática de falhas de rede

Recomendamos sempre habilitar a recuperação automática de rede para evitar tempo de inatividade significativo nos casos em que as conexões do cliente com os nós RabbitMQ falham. A biblioteca do cliente Java RabbitMQ é compatível com a recuperação automática de rede por padrão, começando com a versão 4.0.0.

A recuperação automática da conexão é acionada se uma exceção não tratada for lançada no I/O loop da conexão, se o tempo limite da operação de leitura do soquete for detectado ou se o servidor perder uma pulsação.

Nos casos em que a conexão inicial entre um cliente e um nó RabbitMQ falha, a recuperação automática não será acionada. Recomendamos escrever o código da aplicação para levar em conta as falhas de conexão iniciais tentando a conexão novamente. O exemplo a seguir demonstra a repetição de falhas iniciais de rede usando a biblioteca de cliente Java RabbitMQ.

ConnectionFactory factory = new ConnectionFactory(); // enable automatic recovery if using RabbitMQ Java client library prior to version 4.0.0. factory.setAutomaticRecoveryEnabled(true); // configure various connection settings try { Connection conn = factory.newConnection(); } catch (java.net.ConnectException e) { Thread.sleep(5000); // apply retry logic }
nota

Se uma aplicação fecha uma conexão usando o método Connection.Close, a recuperação automática de rede não será ativada ou acionada.

Etapa 2: Monitore as métricas e os alarmes do corretor

Recomendamos monitorar regularmente CloudWatch métricas e alarmes de seu agente Amazon MQ for RabbitMQ para identificar e resolver possíveis problemas antes que eles afetem seu aplicativo de mensagens. O monitoramento proativo é essencial para manter um aplicativo de mensagens resiliente e garantir o desempenho ideal.

O Amazon MQ for RabbitMQ publica métricas CloudWatch que fornecem informações sobre o desempenho do agente, a utilização de recursos e o fluxo de mensagens. As principais métricas a serem monitoradas incluem o uso da memória e do disco. Você pode configurar CloudWatch alarmes para quando seu corretor se aproximar dos limites de recursos ou sofrer uma degradação do desempenho.

Monitore as seguintes métricas essenciais:

RabbitMQMemUsed e RabbitMQMemLimit

Monitore o uso da memória para evitar alarmes de memória que possam bloquear a publicação de mensagens.

RabbitMQDiskFree e RabbitMQDiskFreeLimit

Monitore o uso do disco para evitar problemas de espaço em disco que podem causar falhas no corretor.

Para implantações de cluster, monitore também as métricas específicas do nó para identificar problemas específicos do nó.

nota

Para obter mais informações sobre como evitar o alarme com muita memória, consulte Endereçar e evitar o alarme com muita memória.