2009-11-02 52 views

回答

2

即使您熱配置WAR文件(通過不重新啓動服務器),在上下文重新加載時仍會出現一些停機時間。這不像Grails這樣,更像是J2EE/servlet。

正如dogbert說,最好把一個維護頁面(在Tomcat的前面使用Apache是​​一個好主意),並關閉應用服務器,上傳新的WAR然後重新啓動服務器了。

+0

呀,THI看起來肯定是要走的路。謝謝。 – Thody 2009-11-08 15:40:35

0

我所知道的是,您可以更改一個常規文件或一個.gsp文件,並在保存更改後可以在瀏覽器中使用,但是如果還有其他類型的文件,我不太確定此功能。

1

一旦程序被打包爲一個WAR,更改源文件將不會被自動像你開始使用運行的應用程序傳播。總的來說,我認爲特別是對於代碼長期有效的編譯代碼,執行實時更新有點冒險。您可以在開發過程中應對奇怪的部署故障,但是在製作過程中,我寧願玩它安全並且停機一點點。

7

您可能會在它前面的一個Apache mod_proxy_balancer創建了兩個Tomcat實例,如所描述here。對於「滾動升級」策略可能應用的應用程序的重新部署(假設APP1和APP2是你的兩個Tomcat實例):

  1. 禁用的tomcat @ APP1 Apache的平衡器經理
  2. 重新部署應用程序到Tomcat @ APP1
  3. 做一些測試,以APP1,看看是否一切正常
  4. 啓動tomcat的@ APP1在平衡器經理
  5. 禁用的tomcat @在平衡器經理
  6. 重新部署應用程序APP 2到Tomcat @ APP 2
  7. 啓動tomcat的@ APP2在平衡器經理

大功告成。您不需要多臺物理或虛擬機器,也可以在一臺機器上安裝。如果您的應用程序升級意味着數據庫更改,請小心。 上面可能被例如包封在gant script,所以一個簡單的「Grails的集羣重新部署」做你需要的一切。這樣的腳本目前在我的列表中,但我不知道何時完成。