当 之间的连接断开时,两个数据中心将继续工作



>假设我们在两个数据中心中有一个 galera 集群。 一个有 3 个节点,另一个有两个节点。

当它们之间的连接断开时,3 节点数据中心将成为主要数据中心并继续工作。但两个节点端将停止。

建立连接后,双方如何继续工作并重新同步?

我们在一个中心的数据独立于另一侧

简短回答:

讨论:

这就是"裂脑"问题。 当两个系统(在您的问题中是数据中心(各自接受写入时,就会发生这种情况。 当两个部分重新组合在一起时,可能会出现冲突INSERTs(等(,例如添加具有相同PRIMARY KEY的行。 InnoDB或Galera没有办法解决这样的冲突。 相反,他们阻止它。 在此示例中,没有仲裁的系统(2 服务器 DC(说"我最好不接受任何写入"。

您有一个"单点故障"。 如果具有 3 个节点的 DC 出现故障(是的,DC确实出现故障(,您将处于脱机状态。 (2 节点 DC 没有仲裁。

因此,要成为"完全 HA",您需要 3 个 DC,每个 DC 至少有一个节点。 并确保对节点进行加权以避免 SPOF。 (例如,如果第三个DC变暗,则4个节点分布为1 + 1 + 2可能会经历裂脑。 更改"权重"以防止这种情况发生。

另请参阅NDB集群。 它是一种MySQL产品,提供"最终一致性"作为包含"相同"数据的多个系统的解决方案。

最新更新