若是單MySQL的優化始終仍是頂不住壓力時,這個時候咱們就必須考慮MySQL的高可用架構(不少同窗也愛說成是MySQL集羣)了,目前可行的方案有:
程序員
1、MySQL Cluster
優點:可用性很是高,性能很是好。每份數據至少可在不一樣主機存一份拷貝,且冗餘數據拷貝實時同步。但它的維護很是複雜,存在部分Bug,目前還不適合比較核心的線上系統,因此這個我不推薦。
web
2、DRBD磁盤網絡鏡像方案
優點:軟件功能強大,數據可在底層快設備級別跨物理主機鏡像,且可根據性能和可靠性要求配置不一樣級別的同步。IO操做保持順序,可知足數據庫對數據一致性的苛刻要求。但非分佈式文件系統環境沒法支持鏡像數據同時可見,性能和可靠性二者相互矛盾,沒法適用於性能和可靠性要求都比較苛刻的環境,維護成本高於MySQL Replication。另外,DRBD也是官方推薦的可用於MySQL高可用方案之一,因此這個你們可根據實際環境來考慮是否部署。
sql
3、MySQL Replication
在實際應用場景中,MySQL Replication是使用最爲普遍的一種提升系統擴展性的設計手段。衆多的MySQL使用者經過Replication功能提高系統的擴展性後,經過簡單的增長價格低廉的硬件設備成倍 甚至成數量級地提升了原有系統的性能,是廣大MySQL中低端使用者很是喜歡的功能之一,也是許多MySQL使用者選擇MySQL最爲重要的緣由。數據庫
比較常規的MySQL Replication架構也有好幾種,這裏分別簡單說明下網絡
MySQL Replication架構一:架構
常規復制架構--Master-slaves,是由一個Master複製到一個或多個Salve的架構模式,主要用於讀壓力大的應用數據庫端廉價擴展解決方案,讀寫分離,Master主要負責寫方面的壓力。
負載均衡
MySQL Replication架構二:分佈式
級聯複製架構,即Master-Slaves-Slaves,這個也是爲了防止Slaves的讀壓力過大,而配置一層二級 Slaves,很容易解決Master端由於附屬slave太多而成爲瓶勁的風險。
MySQL Replication架構三:性能
Dual Master與級聯複製結合架構,即Master-Master-Slaves,最大的好處是既能夠避免主Master的寫操做受到Slave集羣的複製帶來的影響,並且保證了主Master的單點故障。
以上就是比較常見的MySQL replication架構方案,你們可根據本身公司的具體環境來設計 ,Mysql 負載均衡可考慮用LVS或Haproxy來作,高可用HA軟件我推薦Heartbeat。測試
MySQL Replication的不足:
若是Master主機硬件故障沒法恢復,則可能形成部分未傳送到slave端的數據丟失。因此你們應該根據本身目前的網絡規劃,選擇本身合理的Mysql架構方案,跟本身的MySQL DBA和程序員多溝涌,多備份(備份我至少會作到本地和異地雙備份),多測試,數據的事是最大的事,出不得半點差錯,切記切記。