PhxSQL高可用強一致的MySQL集群
PhxSQL是一個兼容MySQL、服務(wù)高可用、數(shù)據(jù)強一致的關(guān)系型數(shù)據(jù)庫集群。PhxSQL以單Master多Slave方式部署,在集群內(nèi)超過一半機器存活的情況下,可自身實現(xiàn)自動Master切換,且保證數(shù)據(jù)一致性。
PhxSQL 架構(gòu):
PhxSQL基于Percona 5.6開發(fā)。Percona是MySQL的一個分支,功能和實現(xiàn)與MySQL基本一致。因此本文后續(xù)直接把MySQL作為討論對象。
總覽:
-
PhxSQL具有服務(wù)高可用、數(shù)據(jù)強一致、高性能、運維簡單、和MySQL完全兼容的特點。
-
服務(wù)高可用:PhxSQL集群內(nèi)只要多數(shù)派節(jié)點存活就能正常提供服務(wù);出于性能的考慮,集群會選舉出一個Master節(jié)點負(fù)責(zé)寫入操作;當(dāng)Master失效,會自動重新選舉新的Master。
-
數(shù)據(jù)強一致:PhxSQL采用多節(jié)點冗余部署,在多個節(jié)點之間采用paxos協(xié)議同步流水,保證了集群內(nèi)各節(jié)點數(shù)據(jù)的強一致。
-
高性能:PhxSQL比MySQL SemiSync的寫性能更好,得益于Paxos協(xié)議比SemiSync協(xié)議更加高效;
-
運維簡單:PhxSQL集群內(nèi)機器出現(xiàn)短時間故障,能自動恢復(fù)數(shù)據(jù),無需復(fù)雜的運維操作;PhxSQL更提供一鍵更換(新增/刪除)集群內(nèi)的機器,簡化運維的工作。
-
MySQL完全兼容:PhxSQL是基于Percona的研發(fā),完全兼容MySQL的操作命令。 可通過MySQL提供的mysqlclient/perconaserverclient直接操作PhxSQL。
PhxSQL 依賴于騰訊微信團隊的另外幾個開源項目:PhxRPC、Libco 以及 PhxPaxos。
作者:Junchao Chen ([email protected]), Haochuan Cui ([email protected]), Duokai Huang ([email protected]), Ming Chen ([email protected]) 和 Sifan Liu ([email protected])
