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