主頁 > 知識庫 > MySQL MGR 有哪些優(yōu)點

MySQL MGR 有哪些優(yōu)點

熱門標(biāo)簽:網(wǎng)站排名優(yōu)化 鐵路電話系統(tǒng) 呼叫中心市場需求 地方門戶網(wǎng)站 Linux服務(wù)器 百度競價排名 服務(wù)外包 AI電銷

MGR(Mysql Group Replication)是5.7版本新加的特性,是一個MySQL插件。

MGR 是一個新的高可用與高擴展的方案,集群中的任何節(jié)點數(shù)據(jù)都是一樣的,可以實現(xiàn)任何節(jié)點都可以寫入,實現(xiàn)了真正意義上的多主。

主要包含以下幾部分:

 API層:負(fù)責(zé)完成和MySQL Server的交互,得到Server狀態(tài),完成事務(wù)的管理。

組件層:主要包括3個特定組件,Capture負(fù)責(zé)收集事務(wù)執(zhí)行的相關(guān)信息,Applier負(fù)責(zé)應(yīng)用集群事務(wù)到本地,Recovery負(fù)責(zé)節(jié)點的數(shù)據(jù)恢復(fù)。

復(fù)制層:負(fù)責(zé)沖突驗證,接收和應(yīng)用集群事務(wù)。

集群通信層:基于Paxos協(xié)議的集群通信引擎,以及和上層組件的交互接口。

MGR組復(fù)制:

基于傳統(tǒng)異步復(fù)制和半同步復(fù)制的缺陷——數(shù)據(jù)的一致性問題無法保證,MySQL官方在5.7.17版本正式推出組復(fù)制(MySQL Group Replication,簡稱MGR)。

由若干個節(jié)點共同組成一個復(fù)制組,一個事務(wù)的提交,必須經(jīng)過組內(nèi)大多數(shù)節(jié)點(N / 2 + 1)決議并通過,才能得以提交。如上圖所示,由3個節(jié)點組成一個復(fù)制組,Consensus層為一致性協(xié)議層,在事務(wù)提交過程中,發(fā)生組間通訊,由2個節(jié)點決議(certify)通過這個事務(wù),事務(wù)才能夠最終得以提交并響應(yīng)。

引入組復(fù)制,主要是為了解決傳統(tǒng)異步復(fù)制和半同步復(fù)制可能產(chǎn)生數(shù)據(jù)不一致的問題。組復(fù)制依靠分布式一致性協(xié)議(Paxos協(xié)議的變體),實現(xiàn)了分布式下數(shù)據(jù)的最終一致性,提供了真正的數(shù)據(jù)高可用方案(是否真正高可用還有待商榷)。其提供的多寫方案,給我們實現(xiàn)多活方案帶來了希望。

MGR是實現(xiàn)分布式數(shù)據(jù)庫架構(gòu),底層的分布式基礎(chǔ)是Paxos協(xié)議。通過Paxos來保證分布式數(shù)據(jù)庫系統(tǒng)中事務(wù)的提交順序。雖然MGR會使用Slave的通道,但只是使用這個通道的執(zhí)行線程(Applier Thread)來執(zhí)行遠程發(fā)送過來的Binlog Event,并沒有使用這個通道來傳輸Binlog Event。MGR沒有使用異步復(fù)制的Binlog Event傳輸機制,也不使用MySQL的服務(wù)端口來進行通信。MGR創(chuàng)建了一個獨立的TCP端口來進行通信,各個MySQL服務(wù)器上的Group Replication插件通過這個端口連接在一起,兩兩之間可以直接通信。

Binlog Event的傳輸并不像異步復(fù)制那樣是簡單的點到點之間的傳輸。MGR在傳輸數(shù)據(jù)時,使用了Paxos協(xié)議。Paxos協(xié)議保證了數(shù)據(jù)傳輸?shù)囊恢滦院驮有浴GR基于Paxos協(xié)議構(gòu)建了一個分布式的狀態(tài)機復(fù)制機制,這是實現(xiàn)多主復(fù)制的核心技術(shù)。

三個主要優(yōu)點:

1. 避免腦裂:MGR中不會出現(xiàn)腦裂的現(xiàn)象(但要注意可能出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況,MGR根據(jù)參數(shù)group_replication_unreachable_majority_timeout=0/N設(shè)置的不同,行為稍有不同)。

2. 數(shù)據(jù)一致性保障:MGR的冗余能力很好,能夠保證Binlog Event至少被復(fù)制到超過一半的成員上,只要同時宕機的成員不超過半數(shù)便不會導(dǎo)致數(shù)據(jù)丟失。MGR還保證只要Binlog Event沒有被傳輸?shù)桨霐?shù)以上的成員,本地成員不會將事務(wù)的Binlog Event寫入Binlog文件和提交事務(wù),從而保證宕機的服務(wù)器上不會有組內(nèi)在線成員上不存在的數(shù)據(jù)。因此,宕機的服務(wù)器重啟后,不再需要特殊的處理就可以加入組。

3. 多節(jié)點寫入支持:多寫模式下支持集群中的所有節(jié)點都可以寫入。

以上就是MySQL MGR 有哪些優(yōu)點的詳細內(nèi)容,更多關(guān)于MySQL MGR 的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • MySQL 8.0.15配置MGR單主多從的方法
  • mysql MGR 單主多主模式切換知識點詳解
  • mysql 8.0.18 mgr 搭建及其切換功能
  • MySQL 8.0.18使用clone plugin重建MGR的實現(xiàn)
  • 詳解MySQL 5.7 MGR單主確定主節(jié)點方法
  • MySQL MGR搭建過程中常遇見的問題及解決辦法

標(biāo)簽:湘潭 黃山 衡水 崇左 仙桃 銅川 蘭州 湖南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL MGR 有哪些優(yōu)點》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266