某項(xiàng)目mysql建設(shè)方案設(shè)計(jì)

1.前言

近期在做某一個(gè)數(shù)據(jù)中臺(tái)項(xiàng)目的架構(gòu)設(shè)計(jì)方案跟衅,其中有一個(gè)模塊需要使用到mysql來提供一些信息交互的聯(lián)機(jī)服務(wù),代替原先使用的公用的hbase集群播歼,主要原因是公用的hbase作業(yè)進(jìn)程多伶跷,經(jīng)常會(huì)發(fā)生數(shù)據(jù)訪問延時(shí)(GC導(dǎo)致的)。改用mysql集群來對(duì)這部分服務(wù)提升響應(yīng)的穩(wěn)定性(查詢延時(shí)不超過100ms)荚恶。
Mysql的性能指標(biāo)要求是在規(guī)劃的單表5000w數(shù)據(jù)量的規(guī)模下撩穿,高并發(fā)查詢響應(yīng)延時(shí)不超過100ms磷支。其中谒撼,mysql的初始化數(shù)據(jù)量級(jí)在1000w左右,需要從數(shù)據(jù)倉庫系統(tǒng)中同步過來雾狈,上線后每日同步增量數(shù)據(jù)廓潜,并下發(fā)結(jié)果數(shù)據(jù)返回到數(shù)據(jù)倉庫中。
同時(shí),由于企業(yè)IT服務(wù)性質(zhì)要求mysql數(shù)據(jù)庫具有高可用性辩蛋,7*24小時(shí)不停機(jī)呻畸,當(dāng)發(fā)生故障時(shí),仍能正常提供服務(wù)悼院,并能恢復(fù)原樣伤为。
經(jīng)過對(duì)需求的理解分析,在架構(gòu)設(shè)計(jì)方案中應(yīng)該要包括:
1. Mysql的高可用部署設(shè)計(jì)
2. Mysql大表拆分設(shè)計(jì)
3. Mysql的ETL設(shè)計(jì)
根據(jù)網(wǎng)上查的各類方案据途,針對(duì)這次項(xiàng)目的需求進(jìn)行方案的選型設(shè)計(jì)

2.高可用部署設(shè)計(jì)

2.1 方案選型

Mysql的高可用需求要求數(shù)據(jù)庫能夠支持7*24小時(shí)不停機(jī)绞愚,當(dāng)故障發(fā)生時(shí)能夠?qū)崿F(xiàn)自動(dòng)切換,保障服務(wù)正常颖医,并能在主機(jī)故障回復(fù)后迅速恢復(fù)原樣位衩。
Mysql的高可用部署大致上分兩類:雙機(jī)或多機(jī)熱備方案,分布式部署方案熔萧。 從使用工具上區(qū)分糖驴,一是利用mysql自有的半數(shù)據(jù)同步工具加keepalived軟件實(shí)現(xiàn)雙機(jī)主備,而是使用各種中間件來實(shí)現(xiàn)多機(jī)主備佛致、主主贮缕、分布式等方案。
本項(xiàng)目中由于對(duì)數(shù)據(jù)庫服務(wù)穩(wěn)定性要求較高俺榆,數(shù)據(jù)量規(guī)模相對(duì)較大跷睦,因此建議基于中間件的一主多從部署架構(gòu)和一個(gè)開源分布式MYSQL數(shù)據(jù)庫TIDB,這兩種方案可以滿足高可用要求肋演。

2.2.1 MHA+MYCAT部署一主多從方案

2.2.1.1 使用軟件說明
2.2.1.1.1 MHA

MHA Manager可以單獨(dú)部署在一臺(tái)獨(dú)立的機(jī)器上管理多個(gè)master-slave集群抑诸,也可以部署在一臺(tái)slave節(jié)點(diǎn)上。MHA Node運(yùn)行在每臺(tái)MySQL服務(wù)器上爹殊,MHA Manager會(huì)定時(shí)探測(cè)集群中的master節(jié)點(diǎn)蜕乡,當(dāng)master出現(xiàn)故障時(shí),它可以自動(dòng)將最新數(shù)據(jù)的slave提升為新的master梗夸,然后將所有其他的slave重新指向新的master层玲。整個(gè)故障轉(zhuǎn)移過程對(duì)應(yīng)用程序完全透明。
MHA(Master HA)是一款開源的 MySQL 的高可用程序反症,它為 MySQL 主從復(fù)制架構(gòu)提供了 automating master failover 功能辛块。MHA 在監(jiān)控到 master 節(jié)點(diǎn)故障時(shí),會(huì)提升其中擁有最新數(shù)據(jù)的 slave 節(jié)點(diǎn)成為新的master 節(jié)點(diǎn)铅碍,在此期間润绵,MHA 會(huì)通過于其它從節(jié)點(diǎn)獲取額外信息來避免一致性方面的問題。MHA 還提供了 master 節(jié)點(diǎn)的在線切換功能胞谈,即按需切換 master/slave 節(jié)點(diǎn)尘盼。
MHA的目的在于維持主從復(fù)制中master節(jié)點(diǎn)的高可用性憨愉,其最大特點(diǎn)是可以修復(fù)多個(gè)slave節(jié)點(diǎn)之間的差異日志,最終使所有slave節(jié)點(diǎn)保持?jǐn)?shù)據(jù)一致卿捎,然后從中選擇一個(gè)作為新的master節(jié)點(diǎn)配紫,并將其它slave節(jié)點(diǎn)指向它。當(dāng)master節(jié)點(diǎn)出現(xiàn)故障時(shí)午阵,可以通過對(duì)比slave節(jié)點(diǎn)之間I/O線程讀取master節(jié)點(diǎn)二進(jìn)制日志的position事件位置躺孝,選取最接近的slave節(jié)點(diǎn)作為備選master節(jié)點(diǎn),其它的slave節(jié)點(diǎn)可以通過與備選master節(jié)點(diǎn)對(duì)比生成差異的中繼日志底桂,在備選master節(jié)點(diǎn)上應(yīng)用從原來master節(jié)點(diǎn)保存的二進(jìn)制日志括细,同時(shí)將備選master節(jié)點(diǎn)提升為新的master節(jié)點(diǎn),最后在其它slave節(jié)點(diǎn)上應(yīng)用相應(yīng)的差異中繼日志并從新的master節(jié)點(diǎn)開始復(fù)制戚啥。

2.2.1.1.2 MYCAT

MYCAT是一款主要作為分布式數(shù)據(jù)庫系統(tǒng)的中間層奋单,可以用來實(shí)現(xiàn)以下功能:

  1. 讀寫分離
  2. 負(fù)載均衡
  3. 數(shù)據(jù)庫的垂直拆分
  4. 數(shù)據(jù)庫水平拆分

在一主多從的部署方案中,主要用來是利用MYCAT的讀寫分離功能猫十。
####### 2.2.1.2 架構(gòu)方案說明


image.png

(圖片中補(bǔ)充數(shù)據(jù)庫使用MHA做主從復(fù)制的方案)
使用MHA實(shí)現(xiàn)Mysql數(shù)據(jù)庫的自動(dòng)故障切換览濒,使用Mycat作為數(shù)據(jù)庫使用的中間件,實(shí)現(xiàn)應(yīng)用對(duì)接的主從庫配置拖云。
一個(gè)主寫庫A多個(gè)從庫贷笛,當(dāng)主庫A故障時(shí),提升從庫B為主寫庫宙项,同時(shí)修改C乏苦、D庫為B的從庫。A故障修復(fù)后尤筐,作為B的從庫汇荐。
主庫A故障后,Mycat會(huì)自動(dòng)把從B提升為寫庫盆繁。而C掀淘、D從庫通過MHA自動(dòng)修改其主庫為B。進(jìn)而實(shí)現(xiàn)自動(dòng)切換的目地油昂。
由于配置了多個(gè)讀節(jié)點(diǎn)革娄,讀并發(fā)的能力有了質(zhì)的提高,可以負(fù)載很高級(jí)別的讀并發(fā)冕碟。
在這種方案下拦惋,通過Mycat對(duì)Mysql的連接訪問實(shí)現(xiàn)了高可用方案,但相應(yīng)的需要對(duì)Mycat本身也做高可用部署設(shè)計(jì)安寺,因此需要使用Haproxy厕妖、keepalive結(jié)合實(shí)現(xiàn)。
在這種方案下我衬,一主多從的部署架構(gòu)相當(dāng)于一個(gè)Mycat集群化部署的一個(gè)分片結(jié)構(gòu)叹放,后續(xù)基于這個(gè)架構(gòu)橫向擴(kuò)展饰恕,支持更大的業(yè)務(wù)體量挠羔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末井仰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子破加,更是在濱河造成了極大的恐慌俱恶,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件范舀,死亡現(xiàn)場(chǎng)離奇詭異合是,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)锭环,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門聪全,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辅辩,你說我怎么就攤上這事难礼。” “怎么了玫锋?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蛾茉,是天一觀的道長。 經(jīng)常有香客問我撩鹿,道長谦炬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任节沦,我火速辦了婚禮键思,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘甫贯。我一直安慰自己稚机,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布获搏。 她就那樣靜靜地躺著赖条,像睡著了一般。 火紅的嫁衣襯著肌膚如雪常熙。 梳的紋絲不亂的頭發(fā)上纬乍,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音裸卫,去河邊找鬼仿贬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛墓贿,可吹牛的內(nèi)容都是我干的茧泪。 我是一名探鬼主播蜓氨,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼队伟!你這毒婦竟也來了穴吹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤嗜侮,失蹤者是張志新(化名)和其女友劉穎港令,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锈颗,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡顷霹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了击吱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淋淀。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖覆醇,靈堂內(nèi)的尸體忽然破棺而出朵纷,到底是詐尸還是另有隱情,我是刑警寧澤叫乌,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布柴罐,位于F島的核電站,受9級(jí)特大地震影響憨奸,放射性物質(zhì)發(fā)生泄漏革屠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一排宰、第九天 我趴在偏房一處隱蔽的房頂上張望似芝。 院中可真熱鬧,春花似錦板甘、人聲如沸党瓮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寞奸。三九已至,卻和暖如春在跳,著一層夾襖步出監(jiān)牢的瞬間枪萄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工猫妙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瓷翻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像齐帚,于是被迫代替她去往敵國和親妒牙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355