Prácticas recomendadas para la resiliencia y la supervisión de la red en Amazon MQ para RabbitMQ - Amazon MQ

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Prácticas recomendadas para la resiliencia y la supervisión de la red en Amazon MQ para RabbitMQ

La resiliencia de la red y el monitoreo de las métricas de los intermediarios son esenciales para mantener aplicaciones de mensajería confiables. Siga las siguientes prácticas recomendadas para implementar mecanismos de recuperación automática y estrategias de monitoreo de recursos.

Paso 1: Recuperarse automáticamente de las fallas de la red

Se recomienda habilitar siempre la recuperación automática de red para evitar un tiempo de inactividad significativo en caso de falla de las conexiones del cliente con los nodos de RabbitMQ. La biblioteca de cliente Java de RabbitMQ admite la recuperación automática de red de forma predeterminada, a partir de la versión 4.0.0.

La recuperación automática de la conexión se activa si se produce una excepción no controlada en el I/O bucle de la conexión, si se detecta un tiempo de espera de una operación de lectura del socket o si el servidor pierde un latido.

En caso de falla en la conexión inicial entre un cliente y un nodo de RabbitMQ, no se activará la recuperación automática. Recomendamos escribir el código de la aplicación para tener en cuenta los errores de conexión iniciales al volver a intentar la conexión. En el siguiente ejemplo, se muestran fallas al reintentar iniciar la red mediante la biblioteca de cliente Java de 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

Si una aplicación cierra una conexión con el método Connection.Close, la recuperación automática de red no se activará ni se disparará.

Paso 2: Supervise las métricas y alarmas de los intermediarios

Le recomendamos que supervise periódicamente CloudWatch las métricas y las alarmas de su agente de Amazon MQ for RabbitMQ para identificar y abordar posibles problemas antes de que afecten a su aplicación de mensajería. El monitoreo proactivo es esencial para mantener una aplicación de mensajería flexible y garantizar un rendimiento óptimo.

Amazon MQ for RabbitMQ publica métricas CloudWatch que proporcionan información sobre el rendimiento de los corredores, la utilización de los recursos y el flujo de mensajes. Las métricas clave que se deben monitorear incluyen el uso de memoria y el uso del disco. Puede configurar CloudWatch alarmas para cuando su agente se acerque a los límites de recursos o experimente una degradación del rendimiento.

Supervise las siguientes métricas esenciales:

RabbitMQMemUsed y RabbitMQMemLimit

Supervise el uso de la memoria para evitar que las alarmas de memoria puedan bloquear la publicación de mensajes.

RabbitMQDiskFree y RabbitMQDiskFreeLimit

Supervise el uso del disco para evitar problemas de espacio en disco que puedan provocar errores en el intermediario.

Para las implementaciones de clústeres, supervise también las métricas específicas de los nodos para identificar problemas específicos de los nodos.

nota

Para obtener más información sobre cómo evitar una alarma de memoria excesiva, consulte Abordar y evitar una alarma de memoria excesiva.