精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

美團點評數據庫高可用架構的演進與設想

數據庫 MySQL
本文介紹最近幾年美團點評MySQL數據庫高可用架構的演進過程,以及我們在開源技術基礎上做的一些創新。同時,也和業界其它方案進行綜合對比,了解業界在高可用方面的進展,和未來我們的一些規劃和展望。


美團點評數據庫高可用架構的演進與設想

本文介紹最近幾年美團點評MySQL數據庫高可用架構的演進過程,以及我們在開源技術基礎上做的一些創新。同時,也和業界其它方案進行綜合對比,了解業界在高可用方面的進展,和未來我們的一些規劃和展望。

MMM

在2015年之前,美團點評(點評側)長期使用MMM(Master-Master replication manager for MySQL)做數據庫高可用,積累了比較多的經驗,也踩了不少坑,可以說MMM在公司數據庫高速發展過程中起到了很大的作用。

MMM的架構如下。

 

如上所示,整個MySQL集群提供1個寫VIP(Virtual IP)和N(N>=1)個讀VIP提供對外服務。每個MySQL節點均部署有一個Agent(mmm-agent),mmm-agent和mmm-manager保持通信狀態,定期向mmm-manager上報當前MySQL節點的存活情況(這里稱之為心跳)。當mmm-manager連續多次無法收到mmm-agent的心跳消息時,會進行切換操作。

mmm-manager分兩種情況處理出現的異常。

1.出現異常的是從節點

  • mmm-manager會嘗試摘掉該從節點的讀VIP,并將該讀VIP漂移到其它存活的節點上,通過這種方式實現從庫的高可用。

2.出現異常的是主節點

  • 如果當時節點還沒完全掛,只是響應超時。則嘗試將Dead Master加上全局鎖(flush tables with read lock)。
  • 在從節點中選擇一個候選主節點作為新的主節點,進行數據補齊。
  • 數據補齊之后,摘掉Dead Master的寫VIP,并嘗試加到新的主節點上。
  • 將其它存活的節點進行數據補齊,并重新掛載在新的主節點上。

主庫發生故障后,整個集群狀態變化如下:

 

mmm-manager檢測到master1發生了故障,對數據進行補齊之后,將寫VIP漂移到了master2上,應用寫操作在新的節點上繼續進行。

然而,MMM架構存在如下問題:

  • VIP的數量過多,管理困難(曾經有一個集群是1主6從,共計7個VIP)。某些情況下會導致集群大部分VIP同時丟失,很難分清節點上之前使用的是哪個VIP。
  • mmm-agent過度敏感,容易導致VIP丟失。同時mmm-agent自身由于沒有高可用,一旦掛掉,會造成mmm-manager誤判,誤認為MySQL節點異常。
  • mmm-manager存在單點,一旦由于某些原因掛掉,整個集群就失去了高可用。
  • VIP需要使用ARP協議,跨網段、跨機房的高可用基本無法實現,保障能力有限。

同時,MMM是Google技術團隊開發的一款比較老的高可用產品,在業內使用的并不多,社區也不活躍,Google很早就不再維護MMM的代碼分支。我們在使用過程中發現大量Bug,部分Bug我們做了修改,并提交到開源社區,有興趣的同學可以參考這里。

MHA

針對于此,從2015年開始,美團點評對MySQL高可用架構進行了改進,全部更新為MHA,很大程度上解決了之前MMM遇到的各種問題。

MHA(MySQL Master High Availability)是由Facebook工程師Yoshinori Matsunobu開發的一款MySQL高可用軟件。從名字就可以看出,MHA只負責MySQL主庫的高可用。主庫發生故障時,MHA會選擇一個數據最接近原主庫的候選主節點(這里只有一個從節點,所以該從節點即為候選主節點)作為新的主節點,并補齊和之前Dead Master 差異的Binlog。數據補齊之后,即將寫VIP漂移到新主庫上。

整個MHA的架構如下(為簡單起見,只描述一主一從):

 

這里我們對MHA做了一些優化,避免一些腦裂問題。

比如DB服務器的上聯交換機出現了抖動,導致主庫無法訪問,被管理節點判定為故障,觸發MHA切換,VIP被漂到了新主庫上。隨后交換機恢復,主庫可被訪問,但由于VIP并沒有從主庫上摘除,因此2臺機器同時擁有VIP,會產生腦裂。我們對MHA Manager加入了向同機架上其他物理機的探測,通過對比更多的信息來判斷是網絡故障還是單機故障。

MHA+Zebra (DAL)

Zebra(斑馬)是美團點評基礎架構團隊開發的一個Java數據庫訪問中間件,是在c3p0基礎上包裝的美團點評內部使用的動態數據源,包括讀寫分離、分庫分表、SQL流控等非常強的功能。它和MHA配合,成為了MySQL數據庫高可用的重要一環。如下是MHA+Zebra配合的整體架構:

 

還是以主庫發生故障為例,處理邏輯有如下兩種方式:

當MHA切換完成之后,主動發送消息給Zebra monitor,Zebra monitor更新ZooKeeper的配置,將主庫上配置的讀流量標記為下線狀態。

Zebra monitor每隔一段時間(10s ~ 40s)檢測集群中節點的健康狀況,一旦發現某個節點出現了問題,及時刷新ZooKeeper中的配置,將該節點標記為下線。

一旦節點變更完成,客戶端監聽到節點發生了變更,會立即使用新的配置重建連接,而老的連接會逐步關閉。整個集群故障切換的過程如下(僅描述Zebra monitor主動探測的情況,***種MHA通知請自行腦補^_^)。

 

由于該切換過程還是借助于VIP漂移,導致只能在同網段或者說同個二層交換機下進行,無法做到跨網段或者跨機房的高可用。為解決這個問題,我們對MHA進行了二次開發,將MHA添加VIP的操作去掉,切換完之后通知Zebra monitor去重新調整節點的讀寫信息(將Wirte調整為new master的實IP,將Dead Master的讀流量摘除),整個切換就完全去VIP化,做到跨網段、甚至跨機房切換,徹底解決之前高可用僅局限于同網段的問題。上述切換過程就變成了如下圖。

 

然而,這種方式中的MHA管理節點是單點,在網絡故障或者機器宕機情況下依然存在風險。同時,由于Master-Slave之間是基于Binlog的異步復制,也就導致了主庫機器宕機或者主庫無法訪問時,MHA切換過程中可能導致數據丟失。

另外,當Master-Slave延遲太大時,也會給數據補齊這一操作帶來額外的時間開銷。

Proxy

除了Zebra中間件,美團點評還有一套基于Proxy的中間件,和MHA一起配合使用。當MHA切換后,主動通知Proxy來進行讀寫流量調整,Proxy相比Zebra更加靈活,同時也能覆蓋非Java應用場景。缺點就是訪問鏈路多了一層,對應的Response Time和故障率也有一定增加。有興趣的同學們可以自行前往GitHub查詢詳細文檔詳細文檔。

未來架構設想

上文提到的MHA架構依然存在如下兩個問題:

  • 管理節點單點。
  • MySQL異步復制中的數據丟失。

針對于此,我們在部分核心業務上使用Semi-Sync,可以保證95%以上場景下數據不丟失(依然存在一些極端情況下無法保障數據的強一致性)。另外,高可用使用分布式的Agent,在某個節點發生故障后,通過一定的選舉協議來選擇新的Master,從而解決了MHA Manager的單點問題。

針對上述問題,我們研究了業界的一些領先的做法,簡單描述如下。

主從同步數據丟失

針對主從同步的數據丟失,一種做法是創建一個Binlog Server,該Server模擬Slave接受Binlog日志,主庫每次的數據寫入都需要接收到Binlog Server的ACK應答,才認為寫入成功。Binlog Server可以部署在就近的物理節點上,從而保證每次數據寫入都能快速落地到Binlog Server。在發生故障時,只需要從Binlog Server拉取數據即可保證數據不丟失。

分布式Agent高可用

針對MHA管理節點單點問題,一種做法是讓MySQL數據庫集群中每個節點部署Agent,發生故障時每個Agent均參與選舉投票,選舉出合適的Slave作為新的主庫,防止只通過Manager來切換,去除MHA單點。整個架構如下圖所示。

 

MGR結合中間件高可用

上述方式某種程度上解決了之前的問題,但是Agent和Binlog Server卻是新引入的風險,同時Binlog Server的存在,也帶來了響應時間上的額外開銷。有沒有一種方式,能夠去除Binlog Server和Agent,又能保證數據不丟失呢 ?答案當然是有的。

最近幾年,MySQL社區關于分布式協議Raft和Paxos非常火,社區也推出了基于Paxos的MGR版本的MySQL,通過Paxos將一致性和切換過程下推到數據庫內部,向上層屏蔽了切換細節。架構如下(以MGR的single-primary為例)。

 

當數據庫發生故障時,MySQL內部自己進行切換。切換完成后將topo結構推送給Zebra-monitor,Zebra-monitor進行相應的讀寫流量變更。不過,該架構存在與Binlog Server同樣的需要回復確認問題,就是每次主庫數據寫入,都需要大多數節點回復ACK,該次寫入才算成功,存在一定的響應時間開銷。同時,每個MGR集群必須需要奇數個數(大于1)的節點,導致原先只需要一主一從兩臺機器,現在需要至少三臺,帶來一定的資源浪費。但不管怎么說,MGR的出現是無疑是MySQL數據庫又一次偉大的創新。

結語

本文介紹了美團點評MySQL數據庫高可用架構從MMM到MHA+Zebra以及MHA+Proxy的演進歷程,同時也介紹了業界一些高可用的做法。數據庫最近幾年發展突飛猛進,數據庫的高可用設計上沒有***的方案,只有不斷的突破和創新,我們也一直在這條路上探索更加優秀的設計與更加***的方案。 

責任編輯:龐桂玉 來源: 36大數據
相關推薦

2017-12-29 08:54:58

高可用數據庫架構

2019-02-26 09:39:46

數據庫高可用架構

2024-09-13 08:59:20

2018-03-28 09:53:50

Android架構演進

2017-02-20 19:23:13

2019-08-23 13:10:39

美團點評Kubernetes集群管理

2010-10-28 15:37:36

高可用架構

2015-05-04 14:17:16

數據庫架構高可用

2024-03-27 12:14:56

數據庫高可用GDS

2011-03-09 08:53:02

MySQL優化集群

2025-01-15 10:53:54

2023-11-27 07:23:39

2021-01-21 10:23:43

數據庫架構技術

2009-11-12 09:39:05

高可用

2018-12-14 11:04:56

數據庫運維智能

2017-03-24 14:29:23

互聯網

2019-12-24 09:30:59

蘇寧高可用高并發

2018-04-17 10:53:51

2018-07-17 14:25:02

SQL解析美團點評MySQL

2017-11-20 11:23:12

MySQLMyFlash閃回工具
點贊
收藏

51CTO技術棧公眾號

国产精品久久免费| 少妇饥渴放荡91麻豆| 成人福利网站| 国产成人av影院| 欧美激情久久久久| 男人的天堂影院| 国产免费拔擦拔擦8x高清在线人 | 午夜啪啪免费视频| 国产精品久久久久久久久久久久久久久久久久 | 欧美极品少妇无套实战| 欧美 日韩 国产 在线| 国产亚洲在线| 自拍偷拍亚洲在线| 91亚洲一区二区| 182在线视频观看| 久久久五月婷婷| 国产精品久久不能| 国产第一页浮力| 精品五月天堂| 在线精品视频小说1| 国产精品av免费| 黄色成人一级片| 老司机午夜精品视频在线观看| 最新国产精品亚洲| 白丝校花扒腿让我c| yellow在线观看网址| 国产欧美综合色| 91九色在线观看| 黄色片免费观看视频| 久久免费av| 亚洲国产欧美一区二区三区同亚洲| 777久久久精品一区二区三区| 日本精品在线| 99re热视频精品| 91久久国产精品91久久性色| 黄色片视频网站| 91九色精品| 亚洲九九九在线观看| 久热精品在线播放| 国模私拍一区二区国模曼安| 国产精品白丝在线| 蜜桃av久久久亚洲精品| www.天天干.com| 久久精品av麻豆的观看方式| 91成人在线观看国产| 国产高清视频免费在线观看| 精品中文一区| 精品黑人一区二区三区久久| 欧美日韩一区二区在线免费观看| 91高清在线观看视频| 国产三级三级三级精品8ⅰ区| 国产成人看片| 无码视频在线观看| 一区二区三区四区五区在线| 久久视频免费在线播放| 女人黄色一级片| 亚洲人成精品久久久| 欧美日韩国产综合久久| 欧美伦理视频在线观看| 国产传媒在线观看| 亚洲国产视频在线| 天天做天天爱天天高潮| 亚洲免费视频一区二区三区| 国产精品网站在线观看| 亚洲精品国产精品国自产观看 | 国产日韩在线观看视频| 91精品国产福利在线观看| 亚洲色图欧美自拍| 91精品国产自产精品男人的天堂| 欧美变态凌虐bdsm| 在线观看一区二区三区四区| 欧美日韩另类图片| 亚洲欧美日韩国产成人| 国产精成人品免费观看| 日韩国产欧美一区二区| 九九精品在线播放| 日韩精品国产一区二区| 久久精品欧洲| 国产欧美日韩丝袜精品一区| 国产v片在线观看| 国产成a人亚洲| 农村寡妇一区二区三区| 999国产在线视频| 18成人在线视频| 天堂8在线天堂资源bt| 91黄色在线| 黑人巨大精品欧美一区二区一视频 | 在线观看视频91| 想看黄色一级片| swag国产精品一区二区| 亚洲人成电影网站色xx| 99精品中文字幕| 激情欧美日韩| 国产精品高精视频免费| 国产夫绿帽单男3p精品视频| 99久久精品国产毛片| 亚洲在线播放电影| av影视在线看| 欧美日韩高清影院| 国产精品无码毛片| 天天射综合网视频| 午夜精品在线观看| 一级特黄色大片| 97aⅴ精品视频一二三区| 亚洲精品一区二区三区av| 性欧美videoshd高清| 欧美在线999| 久久性爱视频网站| 91视频一区| 欧美在线www| 国产视频一二三四区| 久久久久高清精品| 日韩 欧美 视频| 国产亚洲人成a在线v网站 | 色88888久久久久久影院野外| 久久久久久久久久毛片| 美女毛片一区二区三区四区最新中文字幕亚洲| 久久精品视频在线观看| 国产精品视频123| 国产福利一区在线| 亚洲视频电影| 电影网一区二区| 亚洲第一精品夜夜躁人人躁| 小泽玛利亚一区二区免费| 久久精品盗摄| 黄色小网站91| 日本在线视频中文有码| 欧美日韩精品免费| 亚洲精品成人无码| 国产精品综合色区在线观看| 古典武侠综合av第一页| caopen在线视频| 欧美午夜一区二区三区| 精品无码国产污污污免费网站| 国内久久精品| av在线不卡一区| 91极品在线| 3d动漫精品啪啪一区二区竹菊| 黄色片网站免费| 久久精品免费| 欧美亚洲一级二级| 免费成人动漫| 亚洲人午夜精品免费| 麻豆精品久久久久久久99蜜桃| 不卡视频在线观看| 男女日批视频在线观看| 国产96在线亚洲| 色中色综合影院手机版在线观看| 99热这里只有精品9| 亚洲色欲色欲www| 欧美激情第一区| 亚洲第一偷拍| 7777精品久久久大香线蕉小说| 欧美尤物美女在线| 91精品国产综合久久国产大片| 最新黄色av网址| 狠狠色丁香婷婷综合久久片| 一区二区精品在线观看| 国产95亚洲| 久久高清视频免费| 国产三级伦理片| 亚洲自拍偷拍av| 久久久久亚洲无码| 亚洲免费高清| 日本午夜一区二区三区| 精品日韩视频| 久久九九热免费视频| 国产精品无码免费播放| 一级中文字幕一区二区| 丰满岳乱妇一区二区| 在线视频精品| 日韩一区二区电影在线观看| av亚洲一区| 久久中文久久字幕| 欧洲成人一区二区三区| 福利精品视频在线| 五月婷婷六月香| 国产精品白丝jk白祙喷水网站| 岛国大片在线播放| 免费久久久久久久久| 成人黄色短视频在线观看| 蜜桃传媒在线观看免费进入| 亚洲精品在线观看www| 在线不卡免费视频| 亚洲一区二区3| 加勒比一区二区| 久久成人免费日本黄色| 日韩精品久久一区二区| 色棕色天天综合网| 成人做爰www免费看视频网站| 久久免费电影| 中文字幕亚洲一区二区三区五十路 | 欧美一区二区三区的| 亚洲国产成人精品激情在线| 欧美高清在线精品一区| 第一页在线视频| 日韩黄色免费电影| 一本—道久久a久久精品蜜桃| 黄色美女久久久| 国产有码一区二区| 91av久久| 久久精品99久久香蕉国产色戒| 手机看片1024国产| 欧美美女直播网站| 国产精品一区二区三区四| 亚洲色图丝袜美腿| 88久久精品无码一区二区毛片| 国产精品自拍在线| 午夜国产一区二区三区| 在线观看视频日韩| 亚洲美女自拍偷拍| 精品在线观看入口| 国产一区二区三区免费不卡| 亚洲综合资源| 国产成人鲁鲁免费视频a| 天堂av最新在线| 自拍偷拍亚洲一区| 九色视频在线播放| 精品粉嫩超白一线天av| 国产一区二区三区中文字幕| 欧美性xxxx| 国产亚洲欧美精品久久久久久| 中文字幕精品—区二区四季| 变态另类丨国产精品| 国产成人丝袜美腿| 992kp免费看片| 精品制服美女丁香| 日本999视频| 久久午夜视频| 日韩在线视频在线观看| 在线成人h网| 国产一区二区三区播放| 精品久久精品| 日本精品一区二区| 免费视频国产一区| 免费试看一区| 香蕉一区二区| 精品伦精品一区二区三区视频| 在线日韩成人| av一区观看| 亚洲午夜免费| av在线不卡观看| 国产精品香蕉| 国产精品一区二区免费看| 亚洲精品一区国产| 亚洲自拍小视频| 日韩欧美中文在线观看| 97超碰人人模人人爽人人看| 日韩欧美中文字幕一区二区三区| 99高清视频有精品视频| 欧美成年网站| 国产精品免费一区二区三区四区| 亚洲图色一区二区三区| 国产欧美日韩综合精品二区| 国内精品偷拍| 美女黄毛**国产精品啪啪| 国产成人精品一区二区免费看京 | 2021av在线| 日韩在线观看精品| 国产日产一区二区三区| 欧美理论电影在线观看| 国产区美女在线| 97avcom| 成人黄色免费短视频| 国产精品亚洲片夜色在线| 日韩在线激情| 98国产高清一区| 秋霞综合在线视频| 日韩免费三级| 一区二区免费不卡在线| 波多野结衣与黑人| 99在线|亚洲一区二区| 久久久久久久久久久免费视频| 日本vs亚洲vs韩国一区三区二区| 三级av免费观看| 国产成人午夜片在线观看高清观看| 91视频在线免费| 久久久久9999亚洲精品| 国产第一页浮力| 欧美日韩激情视频| 中文字幕 欧美激情| 欧美一区二区三区爱爱| 三级视频在线播放| 日韩日本欧美亚洲| 91资源在线观看| 国产精品99免视看9| 经典三级久久| 免费毛片一区二区三区久久久| 国产精品88久久久久久| 久久久久久免费看| 久久精品免费看| 国产婷婷在线观看| 中文字幕在线免费不卡| 日本在线小视频| 欧美日韩五月天| 午夜视频免费在线| 日韩网站在线观看| 桃色av一区二区| 亚洲自拍在线观看| 久久综合色占| 欧美人与动牲交xxxxbbbb| 日韩精品福利网| av漫画在线观看| 国产精品福利一区二区| 中日韩精品视频在线观看| 欧美精品 国产精品| 四虎精品在永久在线观看| 美女福利视频一区| 视频在线日韩| 精品国产一区二区三区四区vr| 久久在线电影| 日本三级免费观看| 成人高清视频免费观看| 日韩福利小视频| 欧美性生活久久| 你懂的在线免费观看| 久久久久久欧美| 国产一区二区三区精品在线观看| 日韩欧美一区二区三区四区五区 | 成人无码一区二区三区| 日日骚久久av| 亚洲不卡系列| 一区二区三区国产精品| 日韩中文字幕久久| heyzo高清在线| 亚洲a成v人在线观看| 日本一区二区高清不卡| 欧美黄网站在线观看| 国产一本一道久久香蕉| 四虎永久免费地址| 欧美午夜精品一区| 国产福利片在线| 日本韩国在线不卡| 亚洲精华一区二区三区| 丁香六月激情网| 国产不卡视频在线播放| 青娱乐在线视频免费观看| 91精品久久久久久久99蜜桃| 成年女人的天堂在线| 欧美综合在线观看| 免费欧美激情| 国产女女做受ⅹxx高潮| 26uuu久久天堂性欧美| 91九色丨porny丨肉丝| 亚洲国产天堂久久综合网| av漫画网站在线观看| 国产欧美欧洲| 国产精品普通话对白| 男男做爰猛烈叫床爽爽小说| 精品久久久久久久久久久久久| 天天插天天干天天操| 57pao成人永久免费视频| 外国成人在线视频| 成人在线激情网| 中文字幕第一区| 国产又黄又粗又硬| 久久国产精品免费视频| 欧美专区一区| 国产一级做a爰片久久毛片男| 成人午夜av影视| 天天综合网入口| 国产亚洲精品久久久| 日本一区免费网站| 欧美性视频在线播放| 国产精品一区一区三区| 国产精品白浆一区二小说| 精品香蕉在线观看视频一| 深夜视频一区二区| 波多野结衣激情| 成人毛片在线观看| 亚洲精品中文字幕乱码三区91| 亚洲午夜精品视频| 天堂久久一区| 亚洲中文字幕无码av永久| 久久欧美一区二区| 在线视频欧美亚洲| 久久久久久噜噜噜久久久精品| 免费一区二区三区视频导航| 奇米视频888| 亚洲自拍欧美精品| 免费av在线电影| 成人av在线亚洲| 亚洲精品1区| 99久久99久久精品免费| 欧美成人女星排行榜| 欧美黑人一区| 女女同性女同一区二区三区按摩| 波多野结衣亚洲一区| www.亚洲激情| 欧美精品激情在线观看| 国语产色综合| 久久精品aⅴ无码中文字字幕重口| 狠狠色狠狠色综合日日五| 欧美边添边摸边做边爱免费| 国产一区二区精品在线| 奇米色一区二区| 日韩欧美激情视频| 日韩一区二区欧美| 在线看成人短视频| 又黄又爽又色的视频|