如何部署新版本的Java应用程序对用户完全透明?

时间:2016-10-16 22:01:16

标签: session java-8 continuous-deployment wildfly-10

我需要一个答案或教程来解释如何解决以下情况:

  • 我们有一台服务器运行Java 8和Wildfly 10;
  • 我们已经部署了战争。我们称之为system_v1.war;
  • 我们希望部署此应用程序的新版本system_v2.war,其中包含以下先决条件:
    • 当新版本system_v2.war正在部署时,实际版本system_v1.war应继续运行;
    • 应保留用户会话,并且部署应对他们透明;
    • 当已部署新版本system_v2.war时,保存在system_v1.war中的所有用户会话都应迁移到新版本system_v2.war;
    • 当所有用户会话都已迁移时,我们取消部署system_v1.war;
    • 所以,现在,我们只有一个版本system_v2.war,开发了新功能,这种迁移对应用程序的当前和新用户完全透明。

我们怎么做?

例如,如果我们使用PHP,这不是什么大问题,我们只需将新文件发送到服务器即可。没有用户会知道,所有会话都将保留,新功能也会出现。所以问题是如何使用Java。

使用Tomcat,我们可以用## 001,## 002来命名我们的战争,这样就可以实现透明的应用程序部署。通过这种方式,用户会话逐渐迁移到新版本。但是我不清楚,如果我们立即取消部署旧版本,我们将丢失版本1中的用户会话。但是,如果我们没有丢失用户会话,(我想知道这是否也是如此),如何使用Wildfly 10进行此操作?

0 个答案:

没有答案