java - Tomcat7 并行部署特性 : experiences using it on production servers?

标签 java tomcat deployment high-availability

<分区>

我最近了解了 Tomcat 7 允许同时部署同一 webapp 的多个版本的功能:

http://www.tomcatexpert.com/blog/2011/05/31/parallel-deployment-tomcat-7

http://www.javacodegeeks.com/2011/06/zero-downtime-deployment-and-rollback.html

我们的网站每天定期获得 10-20,000 个用户 session ,其中很多是事务性/有状态类型的网络应用程序。并行部署似乎非常适合我们想要的,但我还没有真正听说过人们在他们的服务器上使用它的经验。

如果您在生产中使用 tomcat 7 的这个功能,到目前为止您遇到过任何问题吗?您是否必须对 Web 应用程序进行任何更改才能“很好地”使用此 Tomcat 功能?

最佳答案

我没有在生产中使用这个功能。我的第一个想法是:

  • 如果您应用数据库架构更改会怎样?您将有两个应用程序在具有不同数据库处理(例如不同的 JPA 实体)的相同架构上运行。
  • 如果您有一些计划任务怎么办?他们将并行运行。您的应用程序必须为此做好准备。
  • 如果您应用了一些非常重要的错误修复程序怎么办?您将同时运行良好且有缺陷的应用程序。他们将一起更改数据库,直到所有旧 session 都过期。
  • 如果您应用了一些新功能或错误修复,为什么您希望您的用户看到旧版本的应用程序。
  • 您的应用程序的准备方式必须与您准备应用程序的方式相同,以便在具有粘性 session 的集群上运行。完全一样,但在同一个 Tomcat 上。
  • 您确定您的应用程序可以在 Tomcat 上重新部署而不会出现众所周知的 perm gen 问题吗?我听说他们说现在可以做到。我仍然会在每次重新部署时重新启动 Tomcat。

关于java - Tomcat7 并行部署特性 : experiences using it on production servers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7657693/

相关文章:

spring - Tomcat JDBC 数据源查找在 Spring 应用程序中失败

java - Tomcat 在 Eclipse 中运行但无法执行 GET 请求

deployment - Jenkins-将构建推广到不同的环境

java - HermesJMS 无法连接到 TibcoEMS 服务器

eclipse webapp欢迎文件显示错误

java - Guava 是否有等效于 Python 的 reduce 函数?

deployment - 将 Golang 应用程序部署到 AWS OPSWORKS

java - 无法在另一台电脑上执行 JAR 文件

java - ExecutorService Future::变得非常慢

java - 从 JDBC MSSQL 获取返回值