1. 程式人生 > >MySQL常用叢集方案

MySQL常用叢集方案

瞭解 MySQL 叢集之前,先看看單節點資料庫的弊病:

  • 大型網際網路程式使用者群體龐大,所以架構需要特殊設計。
  • 單節點資料庫無法滿足大併發時效能上的要求。
  • 單節點的資料庫沒有冗餘設計,無法滿足高可用。
  • 單節點 MySQL無法承載巨大的業務量,資料庫負載巨大。

一、常見 MySQL 叢集方案

  • Repliaction 叢集方案
  • PXC 叢集方案( Percona XtraDB Cluster )

兩種叢集方案特性如下圖:
這裡寫圖片描述

二、PXC方案 和 Replication方案對比
1. 先看看 PXC方案
這裡寫圖片描述
很明顯 PXC方案在任何一個節點寫入的資料都會同步到其他節點,資料雙向同步的(在任何節點上都可以同時讀寫)。

2. Replication 叢集方案:
這裡寫圖片描述
Replication方案只能在Master資料庫進行寫操作,在Slave資料庫進行讀操作。如果在Slave資料庫中寫入資料,Master資料庫是不能知道的(單向同步的)。

3. PXC 資料的強一致性

PXC 採用同步複製,事務在所有叢集節點要麼同時提交,要麼不提交。
Replication 採用非同步複製,無法保證資料的一致性。

  • 下面看看 PXC寫入操作:
    這裡寫圖片描述
    當一個寫入請求到達PXC叢集中的一個 mysql(node1資料庫) 資料庫時,node1資料庫會將該寫入請求同步給叢集中的其他所有資料庫,等待所有資料庫都成功提交事務後,node1節點才會將寫入成功的結果告訴給 node1的客戶端。

    PXC 的強一致性對儲存高價值資料時特別重要。

  • 在看Replication叢集寫入操作:
    這裡寫圖片描述
    當一個寫入請求到達 Master資料庫時,Master資料庫執行寫入操作,然後 Master 向客戶端返回寫入成功,同時非同步的複製寫入操作給 Slave資料庫,如果非同步複製時出現問題,從資料庫將無法執行寫入操作,而客戶端得到的是寫入成功。這也是弱一致性的體現。