是否有可能部署一个新的.战争的应用程序没有停止的应用程序?

StackOverflow https://stackoverflow.com/questions/1663757

  •  12-09-2019
  •  | 
  •  

嘿,我是新来的技术发展的看法,我想知道关于部署。一旦一个。战争是部署到生产中,如何才能更新应用程序没有停机时间?

有帮助吗?

解决方案

即使你热部署WAR文件(不重新启动服务器)仍然会有,而上下文重新加载一些停机时间。这不是一个Grails东西作为这样,更多的J2EE / servlet的事情。

由于dogbert说,最好把一个维护页面(使用Apache Tomcat中的前面是一个好主意),并关闭应用服务器,上传新的WAR然后重新启动服务器了。

其他提示

你可能会设置两个tomcat实例Apache mod_proxy_balancer 在它前面,为描述 在这里,.对于重新部署的应用"滚动升级"战略可以适用(假设app1和2都是你的两个tomcat实例):

  1. 禁止tomcat@app1在Apache的平衡经理
  2. 重新部署应用程序tomcat@app1
  3. 做一些测试与app1,看看是否一切正常
  4. 使tomcat@app1在平衡经理
  5. 禁止tomcat@2在平衡经理
  6. 重新部署应用程序tomcat@2
  7. 使tomcat@2在平衡经理

和你完成。你不需要多个物理或虚拟机这样做的-这也有可能在一个单一的框。如果应用程序升级意味着数据库的变化,要小心。上述可能是封例如在一个 gant脚本, ,这样一个简单的"技术发展的看法集群的重新部署"不你需要的一切。这样一个脚本是目前我的名单上,但是我不知道当这将完成。

如果你使用Tomcat,这是可能的,有什么所谓的平行部署:

http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Parallel_deployment

只是名称战争的文件的版本号以描述在doc:

  • foo##42.战争
  • foo##43.战争

在您的应用程序打包成一个WAR,更改源文件将不会被自动像你使用运行的应用程序传播。总的来说,我认为,特别是对于具有代码编译的代码多数民众赞成有效住所有的时间,这是一个有点冒险进行实时更新。您可以在开发过程中奇部署毛刺处理,但在生产,我宁愿明哲保身,生活与停机时间的一点点。

我所知道的是,你可以改变一个常规文件或.gsp之一,之后将更改保存在浏览器可用,但如果有其他类型的文件,我不完全相信这个功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top