在这篇博文中,我将概述使用MySQL Group Replication 8.0.19(又名GR)时最常见的故障转移场景和操作雷竞技下载官网Percona XtraDB集群8(PXC)(基于Galera),并解释每种技术如何处理每种情况。我已经使用一个Primary和一个三个节点PXC创建了一个三节点的Group Replication集群,这两个集群都使用默认设置。我还将使用ProxySQL与这两个集群进行交互。
在两个集群中,节点的名称为mysql1,mysql2,mysql3.在组复制中,如果我们使用单个主配置,则主节点是写入的位置。在PXC中,我也将使用相同的术语,并将发送写操作的节点称为Primary。需要注意的是,在PXC中没有主节点的概念,所有节点都是平等的。
这是两个解决方案的设置的粗略表示。
主服务器崩溃
组复制-写入
在这个测试中,我只向集群发送写查询。当我在GR中杀死Primary服务器时,它需要5-15秒来重新组织拓扑,并让ProxySQL将写入发送到新的Primary服务器。启动旧的Primary并将其添加回集群不会导致任何中断。
组复制-读取
如果我只向集群发送读查询,导致主服务器崩溃会导致读中断怎么办?ProxySQL将简单地将流量重定向到其他节点。集群在重组期间不会被阻塞。
雷竞技下载官网Percona XtraDB集群-写入/读取
在PXC中,读写之间没有区别,一旦一个节点崩溃/消失/分离,集群必须重新创建集群视图并检查quorum。在这样做的同时,它不接受任何读写。通常,这需要3-10秒,在这段时间内应用程序会受到影响。
删除/添加节点
如果我们删除或添加一个新节点,集群将如何运行。
组复制
在GR中,添加或删除节点不会影响或导致应用程序中断。如果我们用clone插件添加一个新节点,集群就会将数据传播到新节点。
雷竞技下载官网Percona XtraDB集群
删除或添加节点不会造成任何停机。类似地,就像在GR中,当我们添加一个新节点时,它将执行一个SST(状态快照传输)来从另一个节点获取所有数据。
部分网络故障
如果一个阅读器节点与主节点分离,但它仍然能够看到其他节点,那么集群会发生什么?
在这种情况下,mysql2 (Primary)和mysql3之间存在网络中断。
组复制
在我之前的博客中,MySQL组复制-部分网络故障性能影响,我更详细地解释了这个特殊情况。基本上,部分网络中断会严重影响集群中的写性能,从而导致应用程序问题和/或停机。
雷竞技下载官网Percona XtraDB集群
在PXC中,当集群重新创建集群视图并开始将流量中继到看到该服务器的节点时,将出现3-5秒的中断。在此之后,它将继续像以前一样工作,而不会对性能造成严重影响。
整体网络隔离
现在,mysql3完全与所有其他节点分离。
组复制
集群可以接受读写而不会中断,ProxySQL会将读取重定向到其他节点。
雷竞技下载官网Percona XtraDB集群
在PXC上,当集群意识到某个节点不可用并像上面那样重新创建集群视图时,将会出现3-5秒的停机。在此之后,它能够处理读和写。
本地应用程序
如果一个节点或部分节点被分离,并且它们没有仲裁,但是它们的应用程序服务器处于同一网段,并且仍然可以连接到服务器,会发生什么?
组复制
分离的节点仍然会接受读流量,因此应用程序可以根据过时的数据做出决定。这是默认设置但你可以通过变量进行配置group_replication_exit_state_action.
雷竞技下载官网Percona XtraDB集群
在PXC中,如果一个节点被分离,它将不接受任何读写操作。优先级是数据一致性,只有具有仲裁的段才能接受任何读写。
改变主
组复制
如果你想使用一个新的主节点,你必须将一个reader提升为新的主节点:
|
1
|
cluster.setPrimaryInstance (“mysql2:3306”)
|
ProxySQL将跟随更改,但在集群重新组织自己时,它将导致几秒钟的停机。
雷竞技下载官网Percona XtraDB集群
在PXC上没有Primary的概念,任何节点都可以在任何时间进行写操作,所以我们只需要将流量重定向到负载平衡器中的另一个节点(即:ProxySQL)。还有一个pxc_maint_modePXC变量。改为维护即使是Primary,也会从节点上软删除连接,但这在ProxySQL Native Galera支持中支持很差。我建议使用1.4调度程序的尊重这个变量。
总结
| 组复制 | 雷竞技下载官网Percona XtraDB集群 | |
| 主要的崩溃 | 5 - 15停机 | 5 - 10停机 |
| 读者崩溃 | 没有影响 | 3 - 5个中断 |
| 增加节点 | 没有影响 | 没有影响 |
| 移除节点 | 没有影响 | 没有影响 |
| 部分网络故障 | 性能的影响 | 3-5s停机,比正常性能好 |
| 整体网络隔离 | 没有影响 | 3 - 5个中断 |
| 改变主 | 1 - 3停机 | 对集群无影响 |
如果读取器节点宕机或分离,则组复制的影响较小。在PXC中,因为所有节点都是相同的,所以没有专用的Primary;如果任何节点发生了任何事情,集群必须投票并重新创建集群视图,这可能会对应用程序产生一些影响。但是,PXC可以更好地处理主要促销和网络故障。
正如我们所看到的,这两种集群解决方案都有各自的优点和缺点。我希望这篇摘要将帮助您更好地理解它们,并更容易地决定使用哪种技术。











