即將開源的新一代MySQL高可用組件:MySQL Plus
在基于MySQL傳統(tǒng)復(fù)制的時(shí)代(MySQL版本低于5.5),MHA在MySQL高可用中可以說是獨(dú)領(lǐng)風(fēng)騷。 在MySQL 5.6及GTID的出現(xiàn)后,MHA在這方面就顯的不那么給力了,和MHA作者交流,作者基本放棄對(duì)該軟件的維護(hù)了,MHA作者目前在Facebook就職,自身也沒再使用MHA,他也認(rèn)為在GTID環(huán)境下MHA存在的價(jià)值不大,不過如果你還在使用傳統(tǒng)復(fù)制,還是可以考慮使用MHA做主從的高可用(太老了,建議升級(jí))。
下面,我們圍繞以下幾點(diǎn)來討論一下:
1、在MySQL 5.7 后為什么不需要MHA;
2、MySQL Plus 是什么,能解決什么問題?
3、MySQL Plus看他們?nèi)绾胃愣ń鹑谥С郑?/span>
MySQL 5.7后為什么不需要MHA
基于MySQL 5.7 GTID復(fù)制已經(jīng)成熟,另外基于MySQL5.7的增強(qiáng)半同步性進(jìn)一步提升。在使用MySQL 5.7的復(fù)制可以使用: MySQL 5.7+GTID+增強(qiáng)半步, 在該結(jié)構(gòu)中, 不存在丟數(shù)據(jù)的問題, 即MHA在這個(gè)結(jié)構(gòu)基本失去了存在的意義。
但使用: MySQL 5.7+GTID+增強(qiáng)半步,也意味著新的知識(shí),可能需要DBA同學(xué)們也要更新一下知識(shí)。而且在MySQL 5.7中引入binlog group commit, 又是對(duì)復(fù)制的一個(gè)加速。
所以說MySQL5.7 在復(fù)制完整性及性能上都有較大地提升,建議沒升級(jí)的同學(xué)盡快升級(jí)了。
官方對(duì)MySQL 5.7的測(cè)試傳送門:https://www.mysql.com/why-mysql/benchmarks/
MySQL Plus是什么,能解決什么問題
在3306π北京活動(dòng)中 青云的蒙哲分享了青云RDS中高可用組件: MySQL Plus。
MySQL Plus是基于一套R(shí)aft構(gòu)建的MySQL中自動(dòng)選主及維護(hù)主從的套件,整體結(jié)構(gòu)如下:
在該結(jié)構(gòu)中Xenon之間會(huì)進(jìn)行通信,在該結(jié)構(gòu)中推薦三個(gè)節(jié)點(diǎn)的MySQL構(gòu)建復(fù)制,聽作者講也支持兩個(gè)節(jié)點(diǎn)的MySQL構(gòu)建集群。
在MySQL Plus主要解決:
1、集群切換的強(qiáng)一致性(從上面架構(gòu)看,更多的依賴于MySQL增強(qiáng)半同步,MySQL Plus在控制切換時(shí),會(huì)做復(fù)制完成校驗(yàn),從而且保證數(shù)據(jù)一致)
2、主從秒級(jí)別切換
3、無中心化自動(dòng)選主
MySQL Plus看他們?nèi)绾胃愣ń鹑诃h(huán)境
MySQL Plus 可以簡(jiǎn)單的理解是一個(gè)MySQL 5.7 GTID增強(qiáng)半同步復(fù)制的高可用管理組件。 在MySQL半同步配置方面,為了支持金融業(yè)務(wù),青云給的配置如下:
-
rpl_semi_sync_master_wait_no_slave=ON
-
rpl_semi_sync_master_timeout=1000000000000000000
-
rpl_semi_sync_master_wait_point=AFTER_SYNC
看到這個(gè)配置我才想明白為什么他們的建議是三個(gè)節(jié)點(diǎn),在rpl_semi_sync_master_timeout配置上,可以說不允許退化到異步復(fù)制, 與RadonDB負(fù)責(zé)人交流,在MySQL Plus架構(gòu)中主節(jié)點(diǎn)上至少要求一個(gè)Slave給半同步應(yīng)答,所以2個(gè)節(jié)點(diǎn)對(duì)架構(gòu)的穩(wěn)定性也是一個(gè)保證。
另外在金融環(huán)境中,作者推薦所有請(qǐng)求都在主庫上完成,免得存在復(fù)制延遲造成交易數(shù)據(jù)異常。
在金融架構(gòu)中,青云也提供了一套基于MySQL Plus之上構(gòu)建建的分庫分表機(jī)制, 基于MySQL的事務(wù)強(qiáng)一致性約,在該平臺(tái)支持OLTP和OLAP更感覺有點(diǎn)NewSQL的感覺。
下面是官方給的一個(gè)總結(jié):
重大消息:
MySQL Plus 官方要開源了,希望通過MySQL Plus給MySQL 5.7 GTID復(fù)制提供一個(gè)新的高可用方案。