【譯】組復制和 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.pswp.cn/web/14710.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14710.shtml
英文地址,請注明出處:http://en.pswp.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 \# 表示…