Dazul Asked: 2019-04-12 04:15:55 +0800 CST2019-04-12 04:15:55 +0800 CST 2019-04-12 04:15:55 +0800 CST 当 3 个节点中的 2 个出现故障时,Galera 集群仍在单个节点上接受写入 772 我正在运行一个 3 集群的 galera 数据库,在冗余测试期间,我看到如果我正确关闭 3 个节点中的 2 个,最后一个仍然接受写入,即使是唯一的唯一一个。 我不确定这是我希望我的集群工作的方式。是否可以将集群设置为在只有 1 个节点启动时拒绝写入? linux mysql cluster 1 个回答 Voted Best Answer Deltik 2019-04-12T05:18:36+08:002019-04-12T05:18:36+08:00 集群大小 ( wsrep_cluster_size) 是一个动态值,它会随着您在 Galera 集群中启动和关闭节点而扩大和缩小。 当您优雅地关闭三个节点中的两个时,您实际上是将主组件状态交给了其余节点。 不存在数据发散(裂脑)的风险,因此最后一个节点为请求提供服务仍然是安全的。集群大小变为 1,您实际上只剩下运行单个 MySQL 服务器。 是否可以将集群设置为在只有 1 个节点启动时拒绝写入? 我不认为 Galera Cluster 是这样工作的。从概念上讲,节点只关心形成法定人数。对于每个节点,如果它占多数,则它保持主要组件状态。孤立的节点成为非主节点。 如果你突然失去了你的三个节点中的两个,那么剩下的节点会发现自己处于少数,进入非主状态(如图所示wsrep_cluster_status),并拒绝读写。 其他资源 Galera 集群文档中的加权仲裁 主要组件状态如何与大多数保持一致: Galera Cluster 如何通过将没有多数的节点置于非主要状态来保护自己免受裂脑场景的影响:
集群大小 (
wsrep_cluster_size
) 是一个动态值,它会随着您在 Galera 集群中启动和关闭节点而扩大和缩小。当您优雅地关闭三个节点中的两个时,您实际上是将主组件状态交给了其余节点。 不存在数据发散(裂脑)的风险,因此最后一个节点为请求提供服务仍然是安全的。集群大小变为 1,您实际上只剩下运行单个 MySQL 服务器。
我不认为 Galera Cluster 是这样工作的。从概念上讲,节点只关心形成法定人数。对于每个节点,如果它占多数,则它保持主要组件状态。孤立的节点成为非主节点。
如果你突然失去了你的三个节点中的两个,那么剩下的节点会发现自己处于少数,进入非主状态(如图所示
wsrep_cluster_status
),并拒绝读写。其他资源
Galera 集群文档中的加权仲裁
主要组件状态如何与大多数保持一致:
Galera Cluster 如何通过将没有多数的节点置于非主要状态来保护自己免受裂脑场景的影响: