Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Meilleures pratiques en matière de résilience et de surveillance du réseau dans Amazon MQ pour RabbitMQ
La résilience du réseau et la surveillance des métriques des courtiers sont essentielles pour maintenir la fiabilité des applications de messagerie. Suivez les bonnes pratiques suivantes pour mettre en œuvre des mécanismes de restauration automatique et des stratégies de surveillance des ressources.
Étape 1 : restauration automatique en cas de panne réseau
Nous vous recommandons de toujours activer la récupération automatique du réseau pour éviter les temps d'arrêt importants en cas d'échec des connexions client aux nœuds RabbitMQ. La bibliothèque client Java RabbitMQ prend en charge la récupération automatique du réseau par défaut, en commençant par la version 4.0.0.
La restauration automatique de la connexion est déclenchée si une exception non gérée est générée dans la I/O boucle de la connexion, si un délai de lecture du socket est détecté ou si le serveur rate un battement de cœur. https://www.rabbitmq.com/heartbeats.html
Dans les cas où la connexion initiale entre un client et un nœud RabbitMQ échoue, la récupération automatique ne sera pas déclenchée. Nous vous recommandons d'écrire votre code d'application pour tenir compte des échecs de connexion initiaux en tentant de nouveau la connexion. L'exemple suivant illustre la nouvelle tentative d'échec réseau initial à l'aide de la bibliothèque client 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 }
Note
Si une application ferme une connexion à l'aide de la méthode Connection.Close, la récupération automatique du réseau ne sera ni activée ni déclenchée.
Étape 2 : Surveillez les indicateurs et les alarmes des courtiers
Nous vous recommandons de surveiller régulièrement CloudWatch les indicateurs et les alarmes de votre courtier Amazon MQ for RabbitMQ afin d'identifier et de résoudre les problèmes potentiels avant qu'ils n'affectent votre application de messagerie. La surveillance proactive est essentielle pour maintenir une application de messagerie résiliente et garantir des performances optimales.
Amazon MQ pour RabbitMQ publie des mesures CloudWatch qui fournissent des informations sur les performances des courtiers, l'utilisation des ressources et le flux de messages. Les indicateurs clés à surveiller incluent l'utilisation de la mémoire et de l'utilisation du disque. Vous pouvez configurer CloudWatch des alarmes lorsque votre courtier approche des limites de ressources ou subit une dégradation de ses performances.
Surveillez les indicateurs essentiels suivants :
RabbitMQMemUsedetRabbitMQMemLimit-
Surveillez l'utilisation de la mémoire pour éviter les alarmes de mémoire susceptibles de bloquer la publication des messages.
RabbitMQDiskFreeetRabbitMQDiskFreeLimit-
Surveillez l'utilisation du disque pour éviter les problèmes d'espace disque susceptibles d'entraîner des défaillances du broker.
Pour les déploiements de clusters, surveillez également les métriques spécifiques aux nœuds afin d'identifier les problèmes spécifiques aux nœuds.
Note
Pour plus d'informations sur la façon de prévenir une alarme de mémoire élevée, voir Résoudre et empêcher une alarme de mémoire élevée.