高可用 | Xenon:后 MHA 時代的選擇

原創(chuàng):知數(shù)堂

| MySQL 高可用的選擇

在 MySQL(5.5 及以下)傳統(tǒng)復(fù)制的時代剪勿,MHA(Master High Availability)在 MySQL 高可用應(yīng)用中非常成熟。在 MySQL(5.6)及 GTID 時代開啟以后兑牡,MHA 卻沒有與新的 MySQL 一起順應(yīng)時潮练对。

MHA 由日本 DeNA 公司 youshimaton 開發(fā)遍蟋,他認為在 GTID 環(huán)境下 MHA 存在的價值不大,MHA 最近一次發(fā)版是 2018 年∶荆現(xiàn)如今使用 MySQL 已離不開 GTID 虚青,無論是從功能、性能角度螺男,還是從維護角度棒厘,GTID 能具備更優(yōu)異的表現(xiàn),針對數(shù)據(jù)業(yè)務(wù)要求不高場景下隧,常使用 GTID+ROW+Semi-Sync 方案奢人。

基于 MHA 和 GTID 發(fā)展現(xiàn)狀,為適應(yīng) MySQL 版本更新的高可用業(yè)務(wù)場景淆院,下面介紹一款可替代 MHA 的高可用方案:MySQL + Xenon

| 什么是 Xenon何乎?

Xenon [?zi?n?n] (https://github.com/radondb/xenon) 是一款由 RadonDB 開發(fā)團隊研發(fā)并開源的新一代 MySQL 集群高可用工具⊥帘纾基于 Raft 協(xié)議進行無中心化選主支救,實現(xiàn)主從秒級切換;基于 Semi-Sync 機制拷淘,保障數(shù)據(jù)不丟失各墨,實現(xiàn)數(shù)據(jù)強一致性。并結(jié)合 MySQL(5.7 及以上版本)并行復(fù)制特性启涯,實現(xiàn) Binlog 并行回放贬堵,大大降低從庫延遲恃轩。

| Xenon 架構(gòu)

  • 自動選主

基于 Raft(依賴于 GTID)自動選主,數(shù)據(jù)一致性依賴于增強半同步 Semi-Sync扁瓢。

  • 故障自動切換

借助于配置項 leader-start-commandleader-stop-command 調(diào)用腳本完成故障切換详恼,也可以結(jié)合 Consul补君,ZooKeeper 自由擴展引几。

  • Xtrabackup 備份調(diào)度集成

| Xenon 工作原理

結(jié)合架構(gòu)圖,可看出 Xenon 就是基于 Raft + Semi-Sync + GTID 實現(xiàn)的高可用挽铁,保證大多數(shù)節(jié)點接收到數(shù)據(jù)伟桅。

而 Raft 基于心跳管理,如果從節(jié)點超時收不到主的心跳叽掘,會嘗試發(fā)起選舉楣铁,若得到超過半數(shù)(非 IDLE 節(jié)點)的選票,則會當選為主節(jié)點更扁。

下面以三節(jié)點(一主兩從)Xenon 集群來簡單說明工作原理盖腕。

{Leader, [GTID:{1,2,3,4,5}]

{Follower1, [GTID:{1,2,3,4,5}]

{Follower2, [GTID:{1,2,3}]

  1. 當 Leader 不可用時,F(xiàn)ollower1 和 Follower2 立即參與競選成為主節(jié)點浓镜。
  2. Xenon 校驗 GTID 值較高的 Follower 成為新主節(jié)點溃列,示例中 GTID 值較高的是 Follower1。
  3. 當 GTID 值最高的 Follower 被選舉成為新主時膛薛,將結(jié)束競選听隐。示例中 Follower1 成為新主節(jié)點后,將會拒絕 Follower2 的選舉哄啄。
  4. 自動完成主從切換雅任。

| Xenon 企業(yè)級核心特性

  • 一主多從架構(gòu),確保金融級強一致性

    高可用架構(gòu)大多采用一主兩從的初始節(jié)點架構(gòu)設(shè)計咨跌,并通過 MySQL 5.7 版本中的 Semi-Sync 特性實現(xiàn)數(shù)據(jù)的多副本同步復(fù)制沪么,多個從節(jié)點的設(shè)置將極大的屏蔽掉單點故障帶來的影響,確保至少一個從節(jié)點與主節(jié)點始終保持數(shù)據(jù)的完全一致锌半,提供金融級數(shù)據(jù)強一致性成玫。

  • 主副本秒級切換,確保業(yè)務(wù)高可用

    節(jié)點之間使用 Raft 協(xié)議進行管理拳喻,當主節(jié)點出現(xiàn)故障不可用時哭当,集群會秒級響應(yīng)并選出新的主節(jié)點(與主節(jié)點數(shù)據(jù)完全同步的從節(jié)點),并立即接管讀寫請求冗澈,確保業(yè)務(wù)的連續(xù)高可用钦勘。這一過程,無需設(shè)置后端集群中各節(jié)點的角色亚亲,一切由系統(tǒng)自動切換彻采。集群中最多可以添加 6 個從節(jié)點腐缤,主節(jié)點可讀可寫,從節(jié)點設(shè)置為只讀肛响。同時岭粤,集群提供兩個 VIP,分別是高可用讀 IP 和高可用寫 IP特笋。讀 IP 可將請求在所有節(jié)點之間進行負載分擔(dān)剃浇,提供讀取性能的同時,也消除了單點故障的影響猎物,提供業(yè)務(wù)可靠性虎囚。寫 IP 則始終指向主節(jié)點(Leader)。

  • 系統(tǒng)自動運維蔫磨,優(yōu)化系統(tǒng)空間使用效率

    通過對 binlog 日志的保留周期 expire_logs_days 的配置(1~4 天)淘讥,主節(jié)點會定期清理不再使用的 binlog 日志,其他從節(jié)點已復(fù)制完畢堤如,提高系統(tǒng)的空間利用率蒲列。

| Xenon 的優(yōu)勢

相比 MHA,Xenon 的優(yōu)勢如下:

  • 多版本內(nèi)核支持

支持 MySQL 5.6搀罢、5.7蝗岖、8.0 內(nèi)核版本。

  • 多平臺支持

    支持物理機魄揉、虛擬機/云平臺剪侮、容器/ Kubernetes 平臺部署。

  • 穩(wěn)定性更好

    MySQL 新版本特性兼容洛退。

  • 性能更佳

    與 GTID瓣俯、MTS(并行復(fù)制) 結(jié)合,并行日志復(fù)制兵怯、并行日志回放彩匕。

  • 架構(gòu)更簡單

    不需要管理節(jié)點,機器成本更低媒区。

  • 數(shù)據(jù)更安全

    增強半同步復(fù)制不會降級為異步驼仪,保證數(shù)據(jù)零丟失,不會存在 MHA 在 GTID 模式下丟數(shù)據(jù)的風(fēng)險袜漩。

  • 故障修復(fù)全自動

    Xenon 對于故障節(jié)點會自動先自我修復(fù)绪爸。

  • 節(jié)點恢復(fù)快

    配合 Xtrabackup 等可以實現(xiàn)快速恢復(fù)。

  • 操作更簡單宙攻,維護成本更低

  • 持續(xù)更新

    Xenon 由 RadonDB 數(shù)據(jù)庫開發(fā)團隊持續(xù)維護更新奠货。

相關(guān)參考

https://github.com/radondb/xenon/tree/master/docs

https://www.fatalerrors.org/a/separation-of-mha-atlas-for-mysql-high-availability.html

https://github.com/yoshinorim

https://code.google.com/archive/p/mysql-master-ha/

https://dev.mysql.com/doc/refman/5.6/en/replication-gtids-concepts.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市座掘,隨后出現(xiàn)的幾起案子递惋,更是在濱河造成了極大的恐慌柔滔,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萍虽,死亡現(xiàn)場離奇詭異睛廊,居然都是意外死亡,警方通過查閱死者的電腦和手機杉编,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門超全,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人王财,你說我怎么就攤上這事卵迂≡1悖” “怎么了绒净?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長偿衰。 經(jīng)常有香客問我挂疆,道長,這世上最難降的妖魔是什么下翎? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任缤言,我火速辦了婚禮,結(jié)果婚禮上视事,老公的妹妹穿的比我還像新娘胆萧。我一直安慰自己,他們只是感情好俐东,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布跌穗。 她就那樣靜靜地躺著,像睡著了一般虏辫。 火紅的嫁衣襯著肌膚如雪蚌吸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天砌庄,我揣著相機與錄音羹唠,去河邊找鬼。 笑死娄昆,一個胖子當著我的面吹牛佩微,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惭等!你這毒婦竟也來了封字?” 一聲冷哼從身側(cè)響起叙凡,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤韩脑,失蹤者是張志新(化名)和其女友劉穎直撤,沒想到半個月后哎榴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寝杖,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡违施,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瑟幕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磕蒲。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖只盹,靈堂內(nèi)的尸體忽然破棺而出辣往,到底是詐尸還是另有隱情,我是刑警寧澤殖卑,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布站削,位于F島的核電站,受9級特大地震影響孵稽,放射性物質(zhì)發(fā)生泄漏许起。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一菩鲜、第九天 我趴在偏房一處隱蔽的房頂上張望园细。 院中可真熱鬧,春花似錦接校、人聲如沸猛频。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹿寻。三九已至,卻和暖如春董习,著一層夾襖步出監(jiān)牢的瞬間烈和,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工皿淋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留招刹,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓窝趣,卻偏偏與公主長得像疯暑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子哑舒,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容