2009-11-02 20 views

Antwort

2

Auch wenn Sie die WAR-Datei in den Bereitstellungsmodus versetzen (indem Sie den Server nicht neu starten), wird beim Laden des Kontexts dennoch eine gewisse Downtime auftreten. Das ist keine Grails-Sache als solche, eher eine J2EE/Servlet-Sache.

Wie Dogbert sagte, am besten, eine Wartungsseite (mit Apache vor Tomcat ist eine gute Idee) und Herunterfahren der App-Server, laden Sie die neue WAR und starten Sie den Server wieder hoch.

+0

Ja, thi Es scheint definitiv der richtige Weg zu sein. Vielen Dank. – Thody

0

Alles was ich weiß ist, dass Sie eine groovy-Datei oder eine .gsp-Datei ändern können und nachdem Sie die Änderungen im Browser verfügbar sind, aber wenn es andere Dateitypen gibt, bin ich mir dieser Funktion nicht sicher.

1

Sobald Ihre App als WAR verpackt ist, werden Änderungen an den Quelldateien nicht automatisch wie bei der Verwendung von run-app weitergegeben. Im Allgemeinen denke ich, dass insbesondere für kompilierten Code mit Code, der ständig aktiv ist, es ein bisschen riskant ist, Live-Updates durchzuführen. Sie können während der Entwicklung mit dem gelegentlichen Implementierungsfehler fertig werden, aber in der Produktion würde ich lieber auf Nummer sicher gehen und mit ein wenig Ausfallzeit leben.

7

Sie können zwei Tomcat-Instanzen mit einem Apache mod_proxy_balancer davor einrichten, wie beschrieben here. Für eine Umschichtung der Anwendung einer "rollendes Upgrade" Strategie könnte angewandt werden (unter der Annahme app1 und app2 sind Ihre zwei Kater-Instanzen):

  1. Disable Kater @ app1 in Apache-Balancer-Manager
  2. Anwendung erneut bereitstellen zu tomcat @ app1
  3. Sie einige Tests mit app1 und sehen, ob alles funktioniert
  4. aktivieren tomcat @ app1 Balancer-Manager
  5. Disable tomcat @ app2 Balancer-Manager
  6. Anwendung erneut bereitstellen zu tomcat @ app2
  7. aktivieren tomcat @ app2 Balancer-Manager

Und du bist fertig. Sie brauchen dafür nicht mehrere physische oder virtuelle Maschinen - es ist auch auf einer einzigen Box möglich. Wenn Ihr Anwendungsupgrade Datenbankänderungen impliziert, seien Sie vorsichtig. Das obige könnte z.B. in einem gant script, so ein einfaches "Grails Cluster-redeploy" tut alles, was Sie brauchen. Solch ein Skript ist momentan auf meiner Liste, aber ich habe keine Ahnung, wann das fertig sein wird.

Verwandte Themen