gpt4 book ai didi

database - 两个数据中心之间的 Galera 集群复制

转载 作者:搜寻专家 更新时间:2023-10-30 20:09:22 24 4
gpt4 key购买 nike

我们有 4 台服务器,位于两个数据中心。一条直线连接两个数据中心。我们计划从 MariaDB 切换到 MariaBD Gallera,因为循环复制很麻烦。

负载均衡器用于确定哪个服务器将处理传入请求,该请求可以是四个服务器中的任何一个。

我担心的是当数据中心之间的连接中断时会发生什么?是否每两个中心组成一个迷你集群,直到连接恢复,然后它们重新组织成一个 4 节点集群?

Galera 如何防止两个数据中心之间连接失败时可能出现的主键重复问题?

假设负载均衡器开始将请求转发到两个数据中心,并且在两个数据中心都发生插入,这可能会导致连接恢复时出现 PK 重复问题。

enter image description here

我尝试使用 vmware station 模拟不同的情况,但是我不知道如何复制这种情况。我设法创建了一个 4 节点复制集群,并设法取出节点并将节点带入集群。但是我不知道如何模拟数据中心。

最佳答案

模拟您的情况的最简单方法是同时杀死一个数据中心中的 2 个节点。另一种可能性是同时启动防火墙规则......

Galera Cluster 是一个悲观的集群。这意味着最高优先级具有数据完整性而不是可用性(与乐观集群的 M/M 复制相反:优先级具有可用性而不是数据完整性)。

在您的情况下,Galera 节点检测到缺少其他一些节点。作为下一步,你的 Galera 集群的每一方都试图找到一个法定人数(多数,超过一半的成员)。这将失败,因为 2 个数据中心之间的链接已关闭。法定人数默认定义为“超过一半”,在您的情况下为 3。任何一方都无法达到法定人数(2 < 3)。然后 Galera 将陷入裂脑状态(非主要)并拒绝所有查询(SHOW 和 SET 除外)。

对于应用程序来说,整个集群似乎都宕机了。

由于具有 2 个位置或节点的概念,不可能拥有可靠且可用的集群。我们总是需要奇数个节点或数据中心。

当链接恢复时,Galera 通常能够检测到这一点并自行恢复。或者您必须手动将一侧从裂脑中取出。

关于database - 两个数据中心之间的 Galera 集群复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27777134/

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