我试图解决的一般问题是:“如何在升级到新版本期间不让用户停止使用应用程序的情况下重新部署 Web 应用程序”。我想出了以下解决方案的假设场景:
Web 应用程序的生产环境具有已配置的 Web 服务器(IIS 或可能是 Apache),并将运行 2 个相同配置的 JBoss 实例。
首先,Web 服务器将所有请求重定向到一个 JBoss 实例,运行当前版本的 Web 应用程序。
新版本的 Web 应用程序已准备好部署到生产环境。
我们将新版本部署到 JBoss 的第二个实例(而第一个实例仍在运行旧版本的 Web 应用程序)
然后,我们以某种方式配置 Web 服务器以将所有新的 HTTP 会话重定向到具有新版本 Web 应用程序的第二个 JBoss 实例。
当前活动会话仍被重定向到“旧”JBoss 实例,直到用户注销或会话到期。
对于另一个版本的重新部署,我们遵循相同的过程(但部署到第一个实例,同时保持第二个运行旧版本)。
目前我不知道这种情况是否有意义,我对该主题的谷歌搜索总是以 JBoss 集群配置结束,在我看来,这在这种情况下是一个过冲,因为我们不需要集群 HA 解决方案(在至少现在),编写应用程序时也没有考虑任何集群支持,这可能是一个真正的问题。
请给我一些关于这个话题的提示。如果有人解决了类似的问题,我也将不胜感激。关于我是否在此描述中遗漏了什么的任何建议也是可取的。