天天看點

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資料庫,如果異步複制時出現問題,從資料庫将無法執行寫入操作,而用戶端得到的是寫入成功。這也是弱一緻性的展現。

原文位址 https://blog.csdn.net/annotation_yang/article/details/80860988