MySQL常用叢集方案
阿新 • • 發佈:2019-01-07
瞭解 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資料庫,如果非同步複製時出現問題,從資料庫將無法執行寫入操作,而客戶端得到的是寫入成功。這也是弱一致性的體現。