gpt4 book ai didi

java - 高可用性 Web 应用程序 - 如何升级?

转载 作者:行者123 更新时间:2023-11-29 13:29:18 25 4
gpt4 key购买 nike

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

就可用性而言,这非常有效。

但是现在,

我们希望在不造成停机的情况下升级我们的网络应用程序。天真的人只会说 - 关闭一个 tomcat,部署新版本,然后再次启动它。 (对所有 Tomcat 这样做)你就完成了!

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

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

任何帮助都可以!

谢谢!

最佳答案

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

  1. 并行运行两个版本。正如您所说,这可能会导致问题。为此,您需要提前进行测试,并确保两者可以并行运行,并且不会出现任何数据不一致(由于架构更改等原因)。

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

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

关于java - 高可用性 Web 应用程序 - 如何升级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19707604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com