mysql高可用設(shè)計方案,如果單MySQL的優(yōu)化始終還是頂不住壓力時,這個時候我們就必須考慮MySQL的集群方案了,目前可行的方案有:
優(yōu)勢:可用性非常高,性能非常好。每份數(shù)據(jù)至少可在不同主機存一份拷貝,且冗余數(shù)據(jù)拷貝實時同步。但它的維護非常復雜,存在部分bug,目前還不適合比較核心的線上系統(tǒng),所以這個我不推薦。
優(yōu)勢:軟件功能強大,數(shù)據(jù)可在底層快設(shè)備級別跨物理主機鏡像,且可根據(jù)性能和可靠性要求配置不同級別的同步。IO操作保持順序,可滿足數(shù)據(jù)庫對數(shù)據(jù)一致性的苛刻要求。
但非分布式文件系統(tǒng)環(huán)境無法支持鏡像數(shù)據(jù)同時可見,性能和可靠性兩者相互矛盾,無法適用于性能和可靠性要求都比較苛刻的環(huán)境,維護成本高于MySQL Replication。所以這個大家可根據(jù)實際環(huán)境來考慮是否部署。
在實際應(yīng)用場景中,MySQL Replication是使用最為廣泛的一種提高系統(tǒng)擴展性的設(shè)計手段。眾多的MySQL使用者通過Replication功能提升系統(tǒng)的擴展性后,通過簡單的增加價格低廉的硬件設(shè)備成倍 甚至成數(shù)量級地提高了原有系統(tǒng)的性能,是廣大MySQL中低端使用者非常喜歡的功能之一,也是許多MySQL使用者選擇MySQL最為重要的原因。
比較常規(guī)的MySQL Replication架構(gòu)也有好幾種,這里分別簡單說明下
MySQL Replicatioin 方案一:常規(guī)復制架構(gòu)–Master-slaves,是由一個Master復制到一個或多個Salve的架構(gòu)模式,主要用于讀壓力大的應(yīng)用數(shù)據(jù)庫端廉價擴展解決方案,讀寫分離,Master主要負責寫方面的壓力。
MySQL Replicatioin 方案二:級聯(lián)復制架構(gòu),即Master-Slaves-Slaves,這個也是為了防止Slaves的讀壓力過大,而配置一層二級 Slaves,很容易解決Master端因為附屬slave太多而成為瓶勁的風險。
MySQL Replicatioin 方案三:Dual Master與級聯(lián)復制結(jié)合架構(gòu),即Master-Master-Slaves,最大的好處是既可以避免主Master的寫操作受到Slave集群的復制帶來的影響,而且保證了主Master的單點故障。