mysql galera多主集羣

ãMySQLãgaleraé群åçç®ä»

1.特性
基於行復制的完全並行同步複製
實時多主架構,任意節點可讀寫
無延遲複製,事務零丟失,可靠健壯的讀寫體驗。
自動化節點關係控制:節點故障自動摘除,節點加入自動協調
接近原生的MySQL數據庫連接的體驗
2.應用
percona分支的PXC集羣,
Maria分支的MariaDB Cluster集羣
3.原理簡析
當一個事務在當前寫入的節點提交後,通過wsrep API(write set replication API)將這個事務變成
寫集(write set)廣播到同集羣的其他節點中,其他節點收到寫集事務後,對這個事務進行可行性檢查,
並返回結果給wsrep API。
若大多數節點都預估自己可以成功執行這個事務,則wsrep API會做出仲裁,通知所有可以成功執行這
個事務的節點提交這個事務,並將事務成功提交的消息返回給客戶端,同時根據需要剔除沒有成功執行
事務的節點
4.galera共享庫
galera本身是作爲一個插件式的共享庫文件,MySQL通過調用galera寫集複製API掛鉤,獲得galera集羣
特性。
4.1 galera共享庫組成部分
galera庫是一個提供準備,複製,應用寫集事務功能的協議棧,其重要組成部分爲:
wsrep API:寫集複製功能組件,負責提供關係型數據庫管理與複製服務,定義接口
wsrep hooks:在數據庫引擎中的集成寫集組件
Gelera Provider:將共享庫轉化爲wsrep API
Certification Layer:保護寫集並完整性,驗證寫集完整性
replication:管理複製協議,提供完整的指令系統
GCS framwork:爲集羣組通信提供插件架構
5.優勢
與異步複製相比
數據一致性強,傳統異步複製並不能保證主從數據一致性,這是由於一般情況下,主庫多線程併發執行
事務,但從庫卻只有一個線程重做事務,在高壓力情況下必然會導致主從延遲。
與使用半同步複製或分佈式鎖實現的同步複製相比
性能高,擴展性好,半同步複製在高負載甚至從庫性能較差的情況下,難以保證其性能。即使自動的
從半同步複製切換到異步複製,也會犧牲其最大的優點:一致性。其擴展友好度也較差
galera集羣的獨特優勢
1.集羣中的每個節點都保存着一份完整的數據副本,數據備份安全性高
2.集羣擴展性強,可以自適應的增加或者下線節點:
新節點上線時,可以空庫狀態直接從集羣中獲取全量數據傳輸(SST),也可以選擇從恢復最新備份狀
態加入集羣,獲取差量數據傳輸(IST)
下線維護其中一個節點時,直接關閉實例,集羣就會自動踢出這個節點。維護完畢上線後,會根據自身
數據與集羣數據的落後程度決定通過SST或者IST傳輸數據。
3.高效的同步效率,提供了高性能的讀寫狀態(相對於同步複製)。由於同步機制的原因,甚至可以
通過增加slave線程的辦法更進一步提高節點同步效率
4.更加友好的軟硬件兼容性:MySQL官方的NDB,雖然也可以實現同樣功能,但因對軟硬件要求較高,
導致其使用量與galera集羣不在一個數量級,其增加節點容易,但無法不停機移除節點
7.缺點:
DDL操作會嚴重阻塞同步線程,線上大動作DDL會導致有可能導致節點堵塞無響應,更進一步會導致
部分節點下線。實際使用中需要搭配pt-osc或者gh-osc等在線DDL工具來進行操作DDL。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章