1. 程式人生 > >MySQL集群架構05分組復制架構和NDB集群架構

MySQL集群架構05分組復制架構和NDB集群架構

連接 場景 集群架構 replica 包含 logs 需要 節點和 節點數

本博客討論MySQL原生的兩種架構:分組復制架構和NDB集群架構。這兩種架構在之前的博客中有詳細介紹。

一、MySQL分組復制架構

1.架構說明

MySQL Group Replication架構總體上還是一種基於復制的技術架構,可以輕松實現單主結構或者多主結構。每份數據存在於2個節點中,提供了數據安全保障的同時,節省了存儲空間。主節點對外提供讀寫服務,而其它從結點僅僅提供只讀服務。Group Replication內部實現了自動屏蔽故障主機的功能。

2.核心原理

MySQL Group Replication使用MySQL 內置插件的方式包含在MySQL發行版本中。

節點之間的事務決策機制采用分布式一致性算法PAXOS算法實現。任意兩個節點之間建立專門的通信連接,用於探測節點是否存活以及數據傳輸。當主節點出現故障時,自動選舉出新的主節點,同時讓故障節點下線。

每份數據會自動復制到至少1個其它節點中,即每份數據至少存在於2個節點中,保障了數據的安全性。每個節點上存儲的數據並不相同,即每份數據並不需要在每個節點上都存儲。相比於PXC集群架構,Group Replication更加節省存儲空間。

3.架構缺點

集群中節點數量目前限制為最多9個節點。集群的寫事務的效率相對於單機系統有所降低。當出現節點故障時,可能導致數據重新分片(sharding),可能對集群造成影響。

4.適用場景

Group Replication適用於對事務一致性要求較高但是事務數據量不大的應用場合。

Group Replication不適合高並發的大量寫事務的同時對寫事務效率有較高要求的應用場合。

5.搭建環境

詳見博客:http://www.cnblogs.com/coe2coe中的MySQL欄目。

6.故障轉移

詳見博客:http://www.cnblogs.com/coe2coe中的MySQL欄目。

二、MySQL NDB Cluster集群架構

1.架構說明

MySQL NDB Cluster集群架構使用了MySQL Group Replication技術和NDBCluster存儲引擎的一種MySQL集群技術架構。這種集群中存在三種節點:管理節點、數據節點和SQL節點。

這種集群同樣內置了自動檢測故障主機並自動將故障主機下線並踢出集群的功能。

2.核心原理

NDB 集群中的管理節點負責集群的維護工作,包括節點的上線和下線以及節點狀態監控等。數據節點負責數據的存儲。SQL節點負責對外提供服務。

NDB Cluster集群架構與PXC架構相比,同樣更加節省存儲空間,因為NDB Cluster集群內部使用的跟MySQL Group Replication相似的數據分布方式。

3.架構缺點

NDB集群的最大缺點是只能使用NDBCluster存儲引擎,不能使用Innodb 等其它存儲引擎。

NDB集群要求每個表必須有一個主鍵,否則可能造成集群故障。

4.適用場景

NDB集群適用於對事務一致性要求較高但是事務數據量不大的應用場合。

NDB不適合高並發的大量寫事務的同時對寫事務效率有較高要求的應用場合。

5.搭建環境

詳見博客:http://www.cnblogs.com/coe2coe中的MySQL欄目。

6.故障轉移

詳見博客:http://www.cnblogs.com/coe2coe中的MySQL欄目。

MySQL集群架構05分組復制架構和NDB集群架構