2009-11-02 35 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的集群重新部署”做你需要的一切。这样的脚本目前在我的列表中,但我不知道何时完成。

相关问题