两个节点的共识算法

时间:2015-03-25 08:56:30

标签: distributed distributed-computing

据我所知,如果PAXOS,RAFT和ZAB都处于活动状态,它们可以使用两个节点。这意味着如果两个节点中的一个崩溃,分布式应用程序也将崩溃。如果我错了,请修理我。

是否存在适用于双节点群集并且能够容忍一个节点失败的算法?

1 个答案:

答案 0 :(得分:3)

没有能够容忍大多数群集失败的共识算法。问题在于,通过其定义,共识需要来自群集的大多数的输入。如果您甚至无法与大多数服务器进行通信,那么如何达成共识呢?如何知道关闭的服务器会同意任何给定的值?基于多数的共识算法的工作假设是某个值的多数协议强制要求不能为给定状态选择其他值。

当然,在一般意义上,有许多算法可以容忍双节点系统中一个节点的故障。问题是你是否愿意容忍权衡取舍。这在很大程度上取决于您的用例。共识算法以可用性为代价提供强一致性。或者,如果您需要可用性(即,即使活动少于大多数节点仍继续运行的集群),您可以使用非常简单的算法,例如一致性哈希和八卦。同样,这些仅取决于您的用例。