Ist es möglich, eine neue WAR-Anwendung bereitstellen, ohne die Anwendung zu stoppen?
Frage
Hallo, ich bin neu in Grails, und ich frage mich, über Einsatz. Sobald ein .war zur Produktion eingesetzt wird, wie kann ich die Anwendung ohne Ausfallzeiten aktualisieren?
Lösung
Auch wenn Sie heißen die WAR-Datei bereitstellen (durch den Server nicht neu gestartet) wird es noch einige Ausfallzeiten während des Kontext neu geladen werden. Dies ist keine Grails Sache als solche, eher eine J2EE / Servlet-Sache.
Wie dogbert gesagt, am besten eine Wartungsseite zu setzen (unter Verwendung von Apache vor Tomcat ist eine gute Idee) und den App-Server heruntergefahren wird, laden Sie die neue IST dann starten Sie den Server wieder auf.
Andere Tipps
Das könnte dir Setup zwei tomcat Instanzen mit einem Apache mod_proxy_balancer
vor ihm, wie beschrieben gant Skript , so ein einfaches "Grails Cluster-redeploy" tut alles, was man braucht. Ein solches Skript zur Zeit auf meiner Liste ist, aber ich habe keine Ahnung, wann diese abgeschlossen sein werden.
Wenn Sie Tomcat verwenden, ist es möglich, mit dem, was Parallel Deployment genannt:
http://tomcat.apache.org/tomcat- 7.0-doc / config / context.html # Parallel_deployment
nennen Sie einfach die WAR-Dateien mit der Versionsnummer wie im doc beschrieben:
- foo ## 42.war
- foo ## 43.war
Wenn Sie Ihre App als WAR verpackt ist, Änderungen an den Quelldateien werden nicht automatisch, wie Sie mit Run-App erhalten werden propagiert. Generell denke ich, dass vor allem für kompilierten Code mit Code, der die ganze Zeit effektiv Lives, es ist ein bisschen riskant ist Live-Updates durchzuführen. Sie können mit den ungeraden Einsatz Glitch während der Entwicklung bewältigen, aber in der Produktion würde ich lieber spielen sie sicher und leben mit ein wenig Ausfallzeiten.
Alles was ich weiß ist, dass Sie eine groovigem-Datei oder ein .gsp ändern können und nachdem Sie die Änderungen speichern im Browser zur Verfügung stehen, aber wenn es andere Arten von Dateien, die ich bin nicht ganz sicher, von dieser Funktion.