【译】组复制和 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 主要功能如下

Spring Boot 配置使用 PEM 格式SSL/TLS证书和私钥

传统的为 Spring Boot 配置SSL/TLS证书一般都会把证书打包成 JKS(Java KeyStore) 或 PKCS12 (Public Key Cryptographic Standards) 格式,然后为Spring Boot 增加以下类似配置: # The format used for the keystore. It could be set to JKS in case it…

SpringBoot(六)之内嵌容器

SpringBoot(六)之内嵌容器 文章目录 SpringBoot(六)之内嵌容器内嵌容器的特点如何替换默认容器1.pom形式2.主动配置 如何通过配置切换serlvet容器 Spring Boot 提供了一种便捷的方式来创建独立运行的 Spring 应用程序,…

计算机毕业设计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…

linux排查思路

1.账号安全 who 查看当前登录用户&#xff08;tty本地登录pts远程登录&#xff09; w 查看系统信息&#xff0c;想知道某一时刻用户的行为 uptime 查看登录多久、多少用户&#xff0c;负载 1.查看用户信息文件/etc/passwd root:x:0:0:root:/root:/bin:/b…

删除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数据库名…

Vue 跨域代理设置

Vue CLI允许你通过项目根目录下的vue.config.js文件来定制devServer的配置。以下是一些常见的配置示例&#xff1a; module.exports {devServer: {// 跨域代理配置&#xff0c;解决开发环境API跨域问题proxy: {//匹配以api路径请求的URL&#xff0c;转发请求的服务器地址/api…

课时135:awk实践_逻辑控制_综合实践

1.3.8 综合实践 学习目标 这一节&#xff0c;我们从 网络实践、文件实践、小结 三个方面来学习 网络实践 简介 所谓的网络实践&#xff0c;主要是借助于awk的数组功能&#xff0c;进行站点的信息统计操作。准备网络环境 安装软件 yum install nignx -y重启nginx [rootloca…

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;如图像…

winform在一个类中调用窗体的控件和方法的两个方式

第一: 在类中创建窗体对象的方式&#xff0c;通过对象调用控件或方法 eg: Form1 form1 new Form1(); form1.Button; //调用控件 form1.Method(); //调用方法 要注意&#xff0c;对应控件的Modifiers属性要设置成public . 第二: 在窗体Form类下定义静态变量(例如:form1)&…

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…

linux创建私有docker仓库以及推拉

创建私有仓库&#xff1a; 1.下载 registry镜像。 2.执行 registry 镜像&#xff08;#为注释内容&#xff0c;\为换行&#xff09;&#xff1a; docker run -d \# --restartalways每次都是开机自动启动--restartalways \# --name registry 表示容器名--name registry \# 表示…