java - 如何将 Java Web 应用程序复制到第二台计算机上以实现 "high availability"和容错能力或 "failover"?

标签 java replication high-availability failover

我希望能够随时升级我的硬件,而不会中断我的网络应用程序,即随时关闭其中一台计算机,交换/升级它,重新插入它,并进行设置,以便它获得一切返回,包括另一台计算机上发生的所有磁盘更改,同时 wep 应用程序继续在另一台计算机上正常运行。反之亦然。

基本上,我希望能够对我的服务器进行全面的故障转移复制。

实现这一点并且仍然正常工作的最简单方法是什么?

除了最简单的方法之外,这也可以在网络应用程序级别完成,这样我可以为每台计算机使用/尝试不同的应用程序服务器(Glassfish、JBoss 等),或者必须是相同的应用程序服务器, (例如 Glassfish+Glassfish,或 JBoss+JBoss)?我没有绑定(bind)到任何应用服务器。

最佳答案

至少您需要在应用程序层(即应用程序服务器)进行复制,因此如果这是 Tomcat(或类似的东西),您可以阅读 this article作为一个开始。基本思想是 HA 软件将决定将请求路由到哪个服务器。因此,如果 srv1 发生问题,srv2 将自动接管。但最重要的是状态复制,即如果您在 srv1 发生故障时转到 srv2,则用户不必重新登录或丢失信息。为了实现这一点,您可以使用共享数据库来获取状态相关信息或使用 software ,这可以帮助您实现这一点 - 后一种方法背后的主要思想是,内存在应用程序的 2 个(或更多)实例之间复制(如果您不使用单独的共享数据库)。检查this问题(连同答案)以获取更多信息

关于java - 如何将 Java Web 应用程序复制到第二台计算机上以实现 "high availability"和容错能力或 "failover"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7769264/

相关文章:

MongoDB 副本集独立备份和恢复

views - CouchDB View 复制

nosql - 可靠性:主/从模式是注定的吗?

RabbitMQ HA 镜像同步微调

java - 在 Tomcat 中,正在从引导类加载器加载 java.lang.LinkageError : JAXB 2. 1 API

包内的 Java 接口(interface)和类组织约定

java - 我在设置 jpanel 和框架时遇到问题

postgresql - 使用 pglogical 复制插入是否需要主键?

java - Clojure/Java 中的模式匹配

kubernetes - 标签上的Kubernetes AntiAffinity-通过Node-Labels传播副本