嗨,我是新來的Grails,我想知道有關部署。將.war部署到生產環境後,如何在不停機的情況下更新應用程序?是否有可能無需停止應用程序部署新的.war應用程序?
5
A
回答
2
即使您熱配置WAR文件(通過不重新啓動服務器),在上下文重新加載時仍會出現一些停機時間。這不像Grails這樣,更像是J2EE/servlet。
正如dogbert說,最好把一個維護頁面(在Tomcat的前面使用Apache是一個好主意),並關閉應用服務器,上傳新的WAR然後重新啓動服務器了。
0
我所知道的是,您可以更改一個常規文件或一個.gsp文件,並在保存更改後可以在瀏覽器中使用,但是如果還有其他類型的文件,我不太確定此功能。
1
一旦程序被打包爲一個WAR,更改源文件將不會被自動像你開始使用運行的應用程序傳播。總的來說,我認爲特別是對於代碼長期有效的編譯代碼,執行實時更新有點冒險。您可以在開發過程中應對奇怪的部署故障,但是在製作過程中,我寧願玩它安全並且停機一點點。
7
您可能會在它前面的一個Apache mod_proxy_balancer
創建了兩個Tomcat實例,如所描述here。對於「滾動升級」策略可能應用的應用程序的重新部署(假設APP1和APP2是你的兩個Tomcat實例):
- 禁用的tomcat @ APP1 Apache的平衡器經理
- 重新部署應用程序到Tomcat @ APP1
- 做一些測試,以APP1,看看是否一切正常
- 啓動tomcat的@ APP1在平衡器經理
- 禁用的tomcat @在平衡器經理
- 重新部署應用程序APP 2到Tomcat @ APP 2
- 啓動tomcat的@ APP2在平衡器經理
大功告成。您不需要多臺物理或虛擬機器,也可以在一臺機器上安裝。如果您的應用程序升級意味着數據庫更改,請小心。 上面可能被例如包封在gant script,所以一個簡單的「Grails的集羣重新部署」做你需要的一切。這樣的腳本目前在我的列表中,但我不知道何時完成。
4
如果您正在使用Tomcat,這是可能的,什麼叫做並行部署:
- :如文檔描述
http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Parallel_deployment
簡單地命名與版本號的戰爭文件FOO ## 42.war
- 富## 43.war
相關問題
- 1. 是否可以部署覆蓋現有應用程序的新應用程序
- 2. 遠程部署Web應用程序(.war)
- 3. 是否有可能重新部署Heroku應用程序,而無需重新啓動一些進程類型
- 4. 不可能部署Qt應用程序
- 5. 是否有可能將應用程序部署到新版本的iPhone之上?
- 6. 是否可以在Google應用程序引擎上部署cakephp應用程序?
- 7. 已部署的C++ AMP應用程序停止響應
- 8. ASP.NET部署的應用程序停止響應
- 9. .war文件中需要部署Flex應用程序?
- 10. Mule應用程序到一個可部署的WAR
- 11. GC是否停止.NET中的所有應用程序線程?
- 12. 是否可以將現有應用程序部署到Docker?
- 13. 是否可以部署使用Fabric 3.4的應用程序?
- 14. 無法將應用程序部署到應用程序引擎
- 15. 部署的Web應用程序是否需要CodeDom?
- 16. WAR部署完成後,是否有辦法讓Tomcat啓動應用程序?
- 17. 通用應用程序是否可以在iOS 3.0上部署?
- 18. iPhone應用程序的無線部署
- 19. 部署應用程序中心是否需要Windows Server OS
- 20. 是否有可能阻止任何應用程序在android
- 21. Tomcat是否反覆重新部署我的Web應用程序?
- 22. 應用程序已停止
- 23. 部署Rails應用程序
- 24. 部署應用程序
- 25. 部署Rails應用程序
- 26. 部署Perl應用程序
- 27. 部署Angular.js應用程序
- 28. Wpf應用程序部署
- 29. 部署 - Java應用程序
- 30. 部署QML應用程序
呀,THI看起來肯定是要走的路。謝謝。 – Thody 2009-11-08 15:40:35