0

我们的 Web 应用程序(spring + jpa + mysql)的停机时间应该非常低。目前我们有一个负载均衡器,它带有一个 3-tomcats 集群和会话复制,它运行具有单个数据源 (mySQL) 的相同 Web 应用程序。

就可用性而言,这很好用。

但现在,

我们希望在不停机的情况下升级我们的 Web 应用程序。天真的人只会说-关闭一个tomcat,部署新版本,然后重新启动它。(为所有的雄猫做)你完成了!

但是,当考虑到 2 个 Web 应用程序变体将同时运行(旧版本和新版本)时,我们可能会遇到一些问题。

任何人都可以对我们在尝试实时升级时应该考虑的关键方面有所了解吗?有什么好的做法吗?有没有讨论这些问题的文章?

任何帮助都可以!

谢谢!

4

1 回答 1

1

可以有几种策略来做到这一点。这是我通常使用的两种方法 -

  1. 并排运行两个版本。正如你所说,这可能会导致问题。要做到这一点,您需要提前测试并查看您可以并排运行并且您没有任何数据不一致(由于更改架构等)。

  2. 更换运行版本。您可以通过建立一个新的 tomcat 集群然后切换负载均衡器来做到这一点。或者,如果您不是基于云的并且您不能这样做 - 从负载均衡器中取出一或两台服务器(最好在低时间,以便您的应用程序可以处理负载)。替换流量不足的服务器上的版本。测试测试它是否正常工作。再次将它们放入流量并取出剩余的服务器,然后更新它们。

此外,验证您是否有快速回滚方法,以防您的版本出现问题并且您仅在生产中发现它......

于 2013-10-31T13:39:04.327 回答