【译】组复制和 Percona XtraDB 集群: 常见操作概述

原文地址:Group Replication and Percona XtraDB Cluster: Overview of Common Operations

在这篇博文中,我将概述使用 MySQL Group Replication 8.0.19(又称 GR)和 Percona XtraDB Cluster 8 (PXC)(基于 Galera)时最常见的故障转移场景和操作,并解释每种技术如何处理每种情况。我使用单个主节点和三节点 PXC(均为默认设置)创建了一个具有群复制功能的三节点集群。我还将使用 ProxySQL 来连接这两个集群。

在这两个集群中,节点的名称都是 mysql1、mysql2 和 mysql3。在组复制中,如果我们使用单主配置,主节点就是写入的位置。在 PXC 中,我也将使用相同的术语,并将发送写入内容的节点称为 Primary 节点。但是,在 PXC 中实际没有主节点的概念,所有节点都是平等的。

这是两种解决方案的大致设置情况。
在这里插入图片描述

主服务器崩溃

在这里插入图片描述

组复制 - 写

在此测试中,我只向群集发送写查询。当我杀死 GR 上的主服务器时,需要 5-15 秒来重组拓扑结构,ProxySQL 也需要 5-15 秒才能将写入发送到新的主服务器。启动旧的主服务器并将其添加回群集不会导致任何中断。

组复制 - 读取

如果我只向群集发送读取查询,主服务器崩溃会导致读取中断吗?ProxySQL 会简单地将流量重定向到其他节点。在重组期间,群集不会被阻塞。

Percona XtraDB 集群 - 写入/读取

在 PXC 中,读取和写入没有区别,一旦某个节点崩溃/消失/分离,集群就必须重新创建集群视图并检查法定节点数。在此过程中,它不接受任何读取或写入。通常,这需要 3-10 秒的时间,在这段时间内,应用程序会受到影响。

删除/添加节点

如果我们删除或添加一个新节点,群集会如何运行?

组复制

在 GR 中,添加或删除节点不会影响或导致应用程序中断。如果我们使用克隆插件添加新节点,群集会将数据传播到新节点。

Percona XtraDB 集群

删除或添加节点不会导致任何中断。同样,就像在 GR 中一样,当我们添加一个新节点时,它会执行 SST(状态快照传输),从另一个节点获取所有数据。

部分网络故障

如果读节点与主节点分离,但仍能看到其他节点,群集会发生什么情况?

在这里插入图片描述
在这种情况下,mysql2(主服务器)和 mysql3 之间出现了网络中断。

组复制

在上一篇博文《MySQL 组复制 - 部分网络故障对性能的影响》中,我详细解释了这种特殊情况。基本上,部分网络中断会严重影响集群的写入性能,从而导致应用程序问题或停机。

Percona XtraDB 集群

在 PXC 中,当集群重新创建集群视图并开始将流量转发到可以看到该服务器的节点时,会出现 3-5 秒的中断。之后,它将继续像以前一样工作,不会对性能造成任何严重影响。

全面网络隔离

在这里插入图片描述

现在,mysql3 与所有其他节点完全分离。

组复制

集群可以接受读取和写入,不会出现任何中断,ProxySQL 会将读取重定向到其他节点。

Percona XtraDB 集群

在 PXC 上,当集群意识到某个节点不可用时,会有 3-5 秒钟的中断,并会如上所述重新创建集群视图。之后,它就可以处理读取和写入了。

应用未通过Proxysql访问数据库集群,直连数据库节点

在这里插入图片描述
如果一个节点或部分节点分离,没有法定节点数,但它们在同一网段中拥有应用服务器,仍可连接到数据库服务器,会发生什么情况?

组复制

分离的节点仍将接受读取流量,因此应用程序可以根据过时的数据做出决策。这是默认设置,但你可以使用名为 group_replication_exit_state_action 的变量进行配置。

Percona XtraDB 集群

在 PXC 中,如果一个节点被分离,它将不会接受任何读取或写入。优先级是数据一致性,只有拥有法定节点数的部分才会接受任何读写。

更改主服务器

组复制

如果要使用新的主节点,必须将一个读节点提升为新的主节点:

MySQL mysql2:3306 ssl JS > cluster.setPrimaryInstance("mysql2:3306")

ProxySQL 会跟随更改,但在集群重组时会造成几秒钟的中断。

Percona XtraDB 集群

PXC 上没有 Primary 的概念,任何节点都可以随时写入,因此我们只需将流量重定向到负载平衡器中的另一个节点(即:ProxySQL)。PXC 中还有一个 pxc_maint_mode 变量。将其更改为 MAINTENANCE 会软移除节点上的连接,即使该节点是主节点,但 ProxySQL Native Galera 支持较差。我建议使用尊重该变量的 1.4 调度器

总结

Group ReplicationPercona XtraDB Cluster
主服务器崩溃中断5-15s中断5-10s
读服务器崩溃无影响中断3-5s
添加节点无影响无影响
删除节点无影响无影响
部分网络故障影响性能较多中断 3-5 秒,性能低于正常水平
全面网络隔离无影响中断3-5s
更改主中断1-3s对集群没影响

如果读节点宕机或分离,组复制的影响较小。在 PXC 中,由于所有节点都是相同的,因此没有专用的主节点;如果任何节点发生任何情况,集群都必须投票并重新创建集群视图,这可能会对应用程序造成一定影响。不过,PXC 能更好地处理主节点晋升和网络故障。

我们可以看到,两种集群解决方案各有利弊。我希望这份总结能帮助您更多地了解它们,从而更容易地决定使用哪种技术。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

markvivv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值