您好,登錄后才能下訂單哦!
本篇內容介紹了“MySQL集群架構優劣勢有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一、主從復制架構MHA
MHA即Master High Availability Manager and Tools for MySQL,是日本的一位MySQL專家采用Perl語言編寫的一個MySQL高可用管理工具,目的在于維持Master主庫的高可用性及數據的一致性。
MHA目前在 MySQL高可用方面是一個相對成熟的解決方案且在大量的企業得到廣泛使用。其最大特點是可以修復多個Slave之間的差異日志,最終使所有Slave保持數據一致,然后從中選擇一個Slave數據庫作為新的Master,并將其它Slave指向它。
當Master故障時,MHA會從多個Slave中隨機選擇一個充當新的Master,也可在配置文件中指定某一個Slave優先成為Master。
其架構如下,請參考:
對上圖做如下簡單解釋,請參考:
1.在MHA架構中讀寫分離,最佳實踐是在應用開發設計時提前規劃讀寫分離事宜,在使用時設置兩個連接池,即讀連接池與寫連接池,也可以選擇折中方案即引入SQL Proxy;
2.關于讀負載均衡可以使用F5、LVS、HAPROXY或者SQL Proxy等工具,只要能實現負載均衡、故障檢查及備升級為主后的讀寫剝離功能即可,建議使用LVS;
3.MHA Manager Node 主要負責主庫在crash時將bin log完整同步到slave庫、監控主備庫的狀態及切換。
二、官方集群MySQLCluster架構
MySQL Cluster是Oracle官方提供的一種企業級解決方案。其采用了無共享存儲的數據存儲模式,真正實現了數據在集群中的實時同步及數據庫節點故障對應用的透明性。官方承諾MySQL Cluster可以保證數據庫系統99.999%的可用性。
對上圖做如下簡單解釋,請參考:
1.關于讀、寫負載均衡可以使用F5、LVS、HAPROXY或則其他SQL Proxy等工具,只要能實現負載均衡、故障檢查即可;
2. MySQL Cluster同時支持Cluster和Sharding功能,一般根據實際需要進行設計表;
3.做Sharding的表一般需要使用NDB Cluster 存儲引擎;
4.MGM節點:作用是管理MySQL Cluster內的其他節點,如提供配置數據、啟動并停止節點、運行備份等,其本身產生故障不會影響MySQL Cluster;
5.SQL節點:用來訪問 Cluster數據的節點;
6.NDB節點:用于保存 Cluster的數據;
7.MySQL Cluster支持集群到集群之間的實時同步,粒度可細致到行級別,可實現夸數據中心部署。
三、開源分布式方案Cobar
Cobar是阿里巴巴B2B部門開發的一種關系型數據的分布式處理系統,它可以在分布式的環境下看上去像傳統數據庫一樣為您提供海量數據服務。Cobar的主要功能如下:
1. Cobar支持將一張表水平拆分成多份分別放入不同的庫來實現表的水平拆分;
2. Cobar也支持將不同的表放入不同的庫;
3.多數情況下,會將以上兩種方式混搭使用;
4. Cobar可以自動向后端連接的MySQL發送心跳,判斷MySQL運行狀況,一旦運行出現異常,Cobar可以自動切換到備機工作。
對上圖做如下簡單解釋,請參考:
1.Cobar同時支持Cluster集群功能和Sharding數據切片功能,一般根據實際需要會采用混搭的方式;
2.Cobar實現了對應用請求的負載均衡、后端節點的健康檢查、SQL切分及查詢結果集的聚合等功能;
3.MySQL主備庫應設置成主主雙向同步方式即須將MySQL M01與MySQL S01設置成主主同步模式。
“MySQL集群架構優劣勢有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。