【译】组复制和 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 能更好地处理主节点晋升和网络故障。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jetbrains插件AI Assistant,终于用上了

ai assistant激活成功后,如图 ai assistant获取:https://web.52shizhan.cn/activity/ai-assistant 主要功能如下

计算机毕业设计hadoop+spark微博舆情大数据分析 微博爬虫可视化 微博数据分析 微博采集分析平台 机器学习(大屏+LSTM情感分析+爬虫)

电商数据建模 一、分析背景与目的 1.1 背景介绍 电商平台数据分析是最为典型的一个数据分析赛道,且电商数据分析有着比较成熟的数据分析模型,比如:人货场模型。此文中我将通过分析国内最大的电商平台——淘宝的用户行为,来巩固数…

算法打卡 Day13(栈与队列)-滑动窗口最大值 + 前 K 个高频元素 + 总结

文章目录 Leetcode 239-滑动窗口最大值题目描述解题思路 Leetcode 347-前 K 个高频元素题目描述解题思路 栈与队列总结 Leetcode 239-滑动窗口最大值 题目描述 https://leetcode.cn/problems/sliding-window-maximum/description/ 解题思路 在本题中我们使用自定义的单调队列…

C语言指针指针和数组笔试题(必看)

前言: 前面介绍了指针的大体内容,如果接下来能够把这些代码的含义搞得清清楚楚,那么你就是代码king! 一维数组: int a[] {1,2,3,4}; printf("%d\n",sizeof(a)); printf("%d\n",sizeof(a0)); pr…

element-ui输入框和多行文字输入框字体不一样解决

element-ui的type"textarea"的字体样式与其他样式不同 <el-input type"textarea"></el-input> <el-input ></el-input>设置&#xff1a; .el-textarea__inner::placeholder {font-family: "Helvetica Neue", Helvetic…

删除MySQL中所有表的外键

方法一&#xff1a; 原理 查询schema中所有外键名称然后拼接生成删除语句 第一步&#xff1a; SELECT CONCAT(ALTER TABLE ,TABLE_SCHEMA,.,TABLE_NAME, DROP FOREIGN KEY ,CONSTRAINT_NAME, ;) FROM information_schema.TABLE_CONSTRAINTS c WHERE c.TABLE_SCHEMA数据库名…

Linux修炼之路之自动化构建工具,进度条,gdb调试器

目录 一&#xff1a;自动化构建工具make/makefile 生成内容&#xff1a; 清理内容&#xff1a; 对于多过程的&#xff1a; 对于多次make&#xff1a; 特殊符号&#xff1a; 二&#xff1a;小程序之进度条 三&#xff1a;git的简单介绍 四&#xff1a;Linux调试器gdb 接…

fpga 提高有什么进阶书推荐?

到FPGA中后期的时候就要开始接触&#xff0c;如&#xff1a;高速接口、光纤数字信号处理等项目实践了&#xff0c;那么我们可以读一些书进行提升&#xff0c;大家可以收藏下。 高速接口项目《嵌入式高速串行总线技术:基于FPGA实现与应用》作者&#xff1a;张锋 FPGA提升书籍推…

Go团队:Go是什么

2024年的Google I/O大会[1]如期而至。 这届大会的核心主旨毫无疑问是坚定不移的以AI为中心&#xff1a;Google先是发布了上下文长度将达到惊人的200万token的Gemini 1.5 Pro[2]&#xff0c;然后面对OpenAI GPT-4o的挑衅&#xff0c;谷歌在大会上直接甩出大杀器Project Astra[3]…

第七节 ConfigurationClassParser 源码分析

tips&#xff1a; ConfigurationClassParser 是 Springframework 中的重要类。 本章主要是源码理解&#xff0c;有难度和深度&#xff0c;也枯燥乏味&#xff0c;可以根据实际情况选择阅读。 位置&#xff1a;org.springframework.context.annotation.ConfigurationClassPars…

[LLM-Agents]浅析Agent工具使用框架:MM-ReAct

上文LLM-Agents]详解Agent中工具使用Workflow提到MM-ReAct框架&#xff0c;通过结合ChatGPT 与视觉专家模型来解决复杂的视觉理解任务的框架。通过设计文本提示&#xff08;prompt design&#xff09;&#xff0c;使得语言模型能够接受、关联和处理多模态信息&#xff0c;如图像…

Multi-Attention Transformer for Naturalistic Driving Action Recognition

标题&#xff1a;用于自然驾驶行为识别的多注意力Transformer 源文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2023W/AICity/papers/Dong_Multi-Attention_Transformer_for_Naturalistic_Driving_Action_Recognition_CVPRW_2023_paper.pdfhttps://openaccess…

java读取shp文件,获取点位

Testvoid contextLoads() {System.out.println(System.currentTimeMillis());//1716516228057 1716516228798String zipFilePath "C:\\code\\risk\\risk_management_backend\\edatope-app\\src\\main\\resources\\新中心范围SHP导入模板.zip";String destDir &quo…

思科模拟器--06.单臂路由升级版--多端路由互连实验--24.5.20

实验图纸如下: 第0步: 先放置六台个人电脑,一台交换机和一台2911路由器(千兆路由器(G0开头的)) 接着,用直通线将 PC0的F0,PC1的F0分别和交换机的F0/0, F0/1连接 交换机的F0/3和路由器的G0/0连接 PC2的F0,PC3的F0分别和交换机的F0/4, F0/5连接 交换机的F0/6和路由器的G0/1…

电脑连接爱快iKuai软路由之后,网卡没有正常获取到IP,无法访问爱快路由管理页?

前言 上一次咱们说到在爱快控制台上设置/辨认lan口&#xff0c;设置完成之后&#xff0c;其他的一些设置就需要在爱快iKuai软路由的管理页面上设置。 有些小伙伴会发现&#xff0c;当电脑连接上爱快软路由的lan口之后&#xff0c;电脑并没有正常获取到ip&#xff0c;导致无法访…

JavaScript表达式和运算符

表达式 表达式一般由常量、变量、运算符、子表达式构成。最简单的表达式可以是一个简单的值。常量或变量。例&#xff1a;var a10 运算符 运算符一般用符号来表示&#xff0c;也有些使用关键字表示。运算符由3中类型 1.一元运算符&#xff1a;一个运算符能够结合一个操作数&…

【Arthas】阿里的线上jvm监控诊断工具的基本使用

关于对运行中的项目做java监测的需求下&#xff0c;Arthas则是一个很好的解决方案。 我们可以用来 1.监控cpu 现成、内存、堆栈 2.排查cpu飚高 造成原因 3.接口没反应 是否死锁 4.接口慢优化 5.代码未按预期执行 是分支不对 还是没提交&#xff1f; 6.线上低级错误 能不能不重启…

STL--set和multiset集合

set和multiset会根据特定的排序准则&#xff0c;自动将元素排序。两者不同之处在于multiset 允许元素重复而 set 不允许。如下图: 使用set或multiset&#xff0c;必须先包含头文件: #include <set>上述两个类型都被定义为命名空间std内的class template: namespace std…

亚马逊自养号测评:深入解析与搭建要求

在亚马逊这电商平台上&#xff0c;商品的评价对于卖家来说至关重要。为了提升商品的曝光率、排名、权重和销量&#xff0c;卖家们纷纷采用各种推广方式&#xff0c;其中&#xff0c;亚马逊自养号测评成为了越来越多卖家选择的一种有效方式。 亚马逊自养号测评&#xff0c;顾名…

分布式事务——9种解决方案的原理与分类

目录 一、概要1. 分布式事务的概念2. 分布式事务解决方案分类 二、常见的分布式事务解决方案1. 基础的 2PC&#xff08;二阶段提交&#xff09;1.1 核心思想1.2 简介1.3 主要特点1.3.1 优点1.3.2 缺点 2. 基础的 3PC&#xff08;三阶段提交&#xff09;2.1 核心思想2.2 简介2.3…