mysql各種集群的優缺點
1.主從架構:只是有數據備份的功能;
2.主主互備+keepalived:實現數據備份加高可用;
3.主主互備,主主下面分別掛個從;
4.A和B主主互備,把從庫都掛到B下,減少IO問題;
5.MMM架構,perl編寫,基於mysql主從復制,成熟高可用集群方案,由一個管理端(monitor)和多個代理端(aget)構成
優點:監控所有Master節點及Slave節點狀態,當master節點出現故障,會把vip自動轉移到健康節點上;更重要的是當Master節點發生故障,會自動將后端Slave節點轉向備用的Master節點繼續同步復制,切換過程不需要人工干預;
缺點:對ip,服務器數量有要求(至少兩台服務器,2個真實ip,3個vip);業務繁忙,數據量大的時候不是很穩定,會出現復制延時,切換失效等問題;所以MMM方案不適合應用於對數據安全性要求很高,並讀寫頻繁的環境中。
數據量大的時候,會有主從數據不同步的問題;
6.MHA架構,搭建起來比較麻煩,至少三台機器,淘寶進行過二次開發,可以用兩台機器;
讀寫分離中間件:
7.mysqlproxy:通過lua腳本實現的讀寫分離,不太穩定,官網不建議用;
8.Amoeba:致力於mysql分布式數據庫前端代理層,它主要在應用層,訪問mysql的時候充當SQL路由器的功能,依據用戶事先設置的規則,將SQL請求發送到特定的數據庫上執行。基於此可以實現負載均衡、讀寫分離、高可用性等需求。Amoeba相當於一個SQL請求的路由器,目的是為負載均衡、讀寫分離、高可用性提供機制,而不是完全實現它們。