來源:慎獨-楊 發(fā)布時間:2018-07-03 17:20:33 閱讀量:1030
了解 MySQL 集群之前,先看看單節(jié)點數(shù)據(jù)庫的弊?。?/span>
大型互聯(lián)網(wǎng)程序用戶群體龐大,所以架構(gòu)需要特殊設(shè)計。
單節(jié)點數(shù)據(jù)庫無法滿足大并發(fā)時性能上的要求。
單節(jié)點的數(shù)據(jù)庫沒有冗余設(shè)計,無法滿足高可用。
單節(jié)點 MySQL無法承載巨大的業(yè)務(wù)量,數(shù)據(jù)庫負(fù)載巨大。
Repliaction 集群方案
PXC 集群方案( Percona XtraDB Cluster )
兩種集群方案特性如下圖:
二、PXC方案 和 Replication方案對比
1. 先看看 PXC方案
很明顯 PXC方案在任何一個節(jié)點寫入的數(shù)據(jù)都會同步到其他節(jié)點,數(shù)據(jù)雙向同步的(在任何節(jié)點上都可以同時讀寫)。
2. Replication 集群方案:
Replication方案只能在Master數(shù)據(jù)庫進行寫操作,在Slave數(shù)據(jù)庫進行讀操作。如果在Slave數(shù)據(jù)庫中寫入數(shù)據(jù),Master數(shù)據(jù)庫是不能知道的(單向同步的)。
3. PXC 數(shù)據(jù)的強一致性
PXC 采用同步復(fù)制,事務(wù)在所有集群節(jié)點要么同時提交,要么不提交。
Replication 采用異步復(fù)制,無法保證數(shù)據(jù)的一致性。
下面看看 PXC寫入操作:
當(dāng)一個寫入請求到達PXC集群中的一個 mysql(node1數(shù)據(jù)庫) 數(shù)據(jù)庫時,node1數(shù)據(jù)庫會將該寫入請求同步給集群中的其他所有數(shù)據(jù)庫,等待所有數(shù)據(jù)庫都成功提交事務(wù)后,node1節(jié)點才會將寫入成功的結(jié)果告訴給 node1的客戶端。
PXC 的強一致性對保存高價值數(shù)據(jù)時特別重要。
在看Replication集群寫入操作:
當(dāng)一個寫入請求到達 Master數(shù)據(jù)庫時,Master數(shù)據(jù)庫執(zhí)行寫入操作,然后 Master 向客戶端返回寫入成功,同時異步的復(fù)制寫入操作給 Slave數(shù)據(jù)庫,如果異步復(fù)制時出現(xiàn)問題,從數(shù)據(jù)庫將無法執(zhí)行寫入操作,而客戶端得到的是寫入成功。這也是弱一致性的體現(xiàn)。
原文地址https://blog.csdn.net/annotation_yang/article/details/80860988