嗨,我是新来的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. 是否可以使用Java 1.7部署heroku war应用程序?
- 2. 是否可以部署覆盖现有应用程序的新应用程序
- 3. 远程部署Web应用程序(.war)
- 4. 是否有可能重新部署Heroku应用程序,而无需重新启动一些进程类型
- 5. 无法再部署我的应用程序(应用程序已部署,无需重新安装)
- 6. 不可能部署Qt应用程序
- 7. 程序在部署时停止响应
- 8. 是否有可能将应用程序部署到新版本的iPhone之上?
- 9. 是否可以在Google应用程序引擎上部署cakephp应用程序?
- 10. ASP.NET部署的应用程序停止响应
- 11. 已部署的C++ AMP应用程序停止响应
- 12. .war文件中需要部署Flex应用程序?
- 13. Mule应用程序到一个可部署的WAR
- 14. 是否可以将现有应用程序部署到Docker?
- 15. GC是否停止.NET中的所有应用程序线程?
- 16. 部署也是CLI应用程序的compojure应用程序
- 17. 的GlassFish - 部署应用程序而无需重新启动域
- 18. 无法重新部署Java应用程序使用maven部署
- 19. 是否可以部署使用Fabric 3.4的应用程序?
- 20. 应用程序无法启动。应用程序意外停止
- 21. 部署的Web应用程序是否需要CodeDom?
- 22. 无法将应用程序部署到应用程序引擎
- 23. 无法在Firebase中部署应用程序应用程序
- 24. WAR部署完成后,是否有办法让Tomcat启动应用程序?
- 25. 部署的应用程序
- 26. 测试Google应用程序脚本HTML界面,无需部署应用程序
- 27. 反映了更改,而无需重新部署应用程序
- 28. 通用应用程序是否可以在iOS 3.0上部署?
- 29. 是否有可能停止安装的应用程序数据库访问iphone
- 30. 无需启动即可部署Java EE应用程序
呀,THI看起来肯定是要走的路。谢谢。 – Thody 2009-11-08 15:40:35