

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á.

# Práticas recomendadas para resiliência e monitoramento de rede no Amazon MQ para RabbitMQ
<a name="best-practices-network-resilience"></a>

 A resiliência da rede e as métricas do agente de monitoramento são essenciais para manter as aplicações de mensagens confiáveis. Conclua as práticas recomendadas a seguir 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
<a name="automatically-recover-from-network-failures"></a>

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.](https://www.rabbitmq.com/heartbeats.html)

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: Monitorar métricas e alarmes do agente
<a name="monitor-metrics-alarms"></a>

 Recomendamos monitorar regularmente [CloudWatch métricas](amazon-mq-accessing-metrics.md) 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 uma aplicação 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](https://docs.aws.amazon.com/Ihttps://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Alarm-On-Metrics.html) 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 agente.

 Em implantações de cluster, monitore também as [métricas específicas do nó](rabbitmq-logging-monitoring.md#security-logging-monitoring-cloudwatch-destination-metrics-rabbitmq) para identificar problemas específicos do nó. 

**nota**  
Para saber mais sobre como evitar o alarme de alta memória, consulte [Abordar e evitar o alarme de alta memória](troubleshooting-action-required-codes-rabbitmq-memory-alarm.md#address-prevent-high-memory-alarm).