Franck a raison, vous devriez utiliser le mécanisme de contrôle de santé. Cependant, le plus souvent, vous pouvez exécuter ce bilan de santé toutes les 6 secondes. Cela se produit si votre application est redémarrée ou redéployée? Malheureusement, l'ELB ne le sait pas, et continue d'envoyer du trafic vers cette instance. Ainsi, dans le pire des cas, pendant (environ) 6 secondes, les visiteurs de votre site qui sont servis par cette instance recevront un message d'erreur ou un vidage de trace.
J'ai contacté Amazon en leur demandant un bouton PAUSE pour chaque instance inscrite avec l'ELB, afin que nous puissions dire à l'ELB d'arrêter d'envoyer des requêtes à cette instance. Quelqu'un a aimé l'idée, et a promis de l'escalader aux développeurs. Au moins, ce serait un moyen facile d'éviter que cette demande ne soit pas prête.
Un conseil pas directement lié à l'ELB, mais à Tomcat: Tomcat a maintenant un moyen de télécharger des WAR avec des versions. Au lieu de télécharger un fichier "root.war", vous pouvez télécharger un fichier "root ## 2012-04-30.war" (par exemple), et Tomcat déploiera une nouvelle version du même fichier WAR. Cette nouvelle version n'interrompra pas la version actuelle qui répond aux demandes, et dès que la nouvelle version sera prête, elle commencera à prendre le trafic au lieu de l'ancienne version. De cette façon, votre instance n'arrête jamais de répondre aux demandes, de sorte que l'ELB n'a pas besoin d'arrêter d'envoyer des requêtes.
Merci, c'est une bonne solution, mais trop manuelle pour mon utilisation. Peut-être que les outils qui déploient de nouveaux .wars peuvent contrôler ce comportement ... –