Prácticas recomendadas de supervisión y resiliencia de la red en Amazon MQ para RabbitMQ
La resiliencia de la red y las métricas de los agentes de supervisión son esenciales para mantener la fiabilidad de las aplicaciones de mensajería. Siga las siguientes prácticas recomendadas para implementar mecanismos de recuperación automática y estrategias de supervisión de recursos.
Paso 1: Recuperación automática de fallas de 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 bucle de E/S de la conexión, si se detecta un tiempo de espera de la operación de lectura de 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 las alarmas de los agentes
Le recomendamos que supervise periódicamente las métricas y alarmas de CloudWatch de su agente de Amazon MQ para RabbitMQ para identificar y abordar posibles problemas antes de que afecten a su aplicación de mensajería. La supervisión proactiva es esencial para mantener una aplicación de mensajería flexible y garantizar un rendimiento óptimo.
Amazon MQ for RabbitMQ publica métricas en CloudWatch que proporcionan información sobre el rendimiento de los agentes, la utilización de los recursos y el flujo de mensajes. Las métricas clave que se deben supervisar incluyen el uso de memoria y el uso del disco. Puede configurar alarmas de CloudWatch 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:
RabbitMQMemUsedyRabbitMQMemLimit-
Supervise el uso de la memoria para evitar que las alarmas de memoria puedan bloquear la publicación de mensajes.
RabbitMQDiskFreeyRabbitMQDiskFreeLimit-
Supervise el uso del disco para evitar problemas de espacio en disco que puedan provocar errores en el agente.
En el caso de 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.