Est-il possible de déployer une nouvelle application .war sans arrêter l'application?
Question
Hé, je suis nouveau à Grails, et je me demande sur le déploiement. Une fois qu'un .war est déployé à la production, comment puis-je mettre à jour l'application sans interruption de service?
La solution
Même si vous déployez chaud le fichier WAR (par pas le redémarrage du serveur), il y aura toujours un temps d'arrêt alors que les rechargements de contexte. Ce n'est pas une chose Grails en tant que tel, plus d'une chose J2EE / servlet.
Comme dit Dogbert, mieux de mettre en place une page de maintenance (en utilisant Apache Tomcat devant est une bonne idée) et arrêter le serveur d'applications, télécharger la nouvelle WAR puis démarrer le serveur à nouveau.
Autres conseils
Vous pourriez configurer deux instances de tomcat avec un mod_proxy_balancer
Apache devant lui, comme décrit script gant , donc un simple « cluster redéployer de Grails » fait tout ce dont vous avez besoin. Un tel scénario est actuellement sur ma liste, mais je ne sais pas quand ce sera fini.
Si vous utilisez Tomcat, il est possible, avec ce qu'on appelle le déploiement parallèle:
http://tomcat.apache.org/tomcat- 7.0-doc / config / context.html # Parallel_deployment
Il suffit de nommer les fichiers de guerre avec le numéro de version comme décrit dans le document:
- foo ## 42.war
- foo ## 43.war
Une fois que votre application est emballé comme une guerre, les modifications apportées aux fichiers source ne seront pas propagées automatiquement comme vous rodé app. En général, je pense que en particulier pour le code compilé avec le code qui est effectivement vivre tout le temps, il est un peu risqué d'effectuer des mises à jour en direct. Vous pouvez faire face à la Glitch de déploiement étrange au cours du développement, mais dans la production que je préfère jouer en toute sécurité et vivre avec un peu de temps d'arrêt.
Tout ce que je sais est que vous pouvez modifier un fichier groovy ou un .gsp un et après avoir enregistré les modifications sont disponibles dans le navigateur, mais s'il y a d'autres types de fichiers que je ne suis pas certain de cette fonctionnalité.