根据我对jboss文档的阅读,它说,
我们将高可用性定义为系统继续运行的能力 在一个或多个服务器发生故障后运行。一部分 高可用性是故障转移,我们将其定义为能力 客户端连接从一台服务器迁移到另一台服务器 服务器故障,因此客户端应用程序可以继续运行。
故障转移是高可用性的一部分吗?我们如何区分故障转移与高可用性?
答案 0 :(得分:13)
故障转移是实现高可用性(HA)的一种方法。将HA视为功能和故障转移,作为该功能的一种可能实现。实现HA时,故障转移并不总是唯一的考虑因素。
例如,Cassandra通过复制实现HA,但可用性的度由数据一致性设置决定。从本质上讲,这些设置决定了一个动作(读取或写入)成功响应的节点数量。要求更多节点响应意味着更少的可用性,并且需要更少的节点意味着更多可用性。这是HA的一个例子,严格来说与故障转移毫无关系。
答案 1 :(得分:11)
高可用性
指的是服务器系统在某种程度上容忍失败。 大多数情况下,这是通过硬件冗余完成的。假设机器有冗余电源,如果一台机器出现故障,机器将继续运行。
<强>故障转移强>
然后,您具有应用程序冗余(故障转移),这通常是指在多个硬件安装上运行的应用程序能够以任何这些硬件安装的一致方式响应客户端。这样,如果硬件完全失效,或者O / S在特定机器上死亡,则另一台机器可以继续运行。
SQL Server以四种方式处理应用程序冗余:
答案 2 :(得分:0)
高可用性(简称HA)是一个广义的术语,所以当我想到它时,我倾向于将其视为HA集群< /strong>。
来自Wikipedia High-availability cluster:
<块引用>高可用性集群是一组计算机 支持可以可靠地使用的服务器应用程序 最少的停机时间。它们通过使用高可用性来运行 用于在组或集群中利用冗余计算机的软件 当系统组件出现故障时提供持续服务。没有 集群,如果运行特定应用程序的服务器崩溃, 在修复崩溃的服务器之前,应用程序将不可用。
因此,从上面的描述中得出的结论是,HA 集群将为您提供最少的停机故障转移。让我解释一下 HA 集群可以为您提供的两种类型的故障转移:
热-热/主动-主动:冗余计算机真正并行运行,产生完全相同的状态和完全相同的输出。它们都是活跃的节点,作为彼此的完美镜像运行。在这种情况下,您的故障转移停机时间为零,您只需从集群中的任何机器上拔下电源插头即可,而不会造成任何停机或服务中断。
热警告/主动-被动:只有一台主计算机是主动的,而集群中的其他计算机正在被动地重建与主计算机相同的状态。当主计算机出现故障时,它必须被禁用或终止(自动或由操作员),然后集群中的一台被动计算机需要被激活(自动或由操作员)。
问题是什么? 问题是可以在 HA 集群中运行的应用程序设计起来并不简单,因为它们需要真正的确定性有限状态机.基于时间的 classic problem is when your application needs to use the clock to build state,因为时钟本质上是非常不确定的。
免责声明:我是 CoralSequencer 的开发者之一。