如何處理高并發(fā)和單點故障

如何設(shè)計一個高并發(fā)系統(tǒng)?

如果你確實有真才實學(xué)柱嫌,在互聯(lián)網(wǎng)公司里锋恬,干過高并發(fā)系統(tǒng),那你拿Offer编丘,基本如探囊取物一樣簡單与学。

但你要真干過高并發(fā)系統(tǒng),面試官絕對不會問這個問題嘉抓,否則他就不太明智了索守。

因為真正干過高并發(fā)的人一定知道,脫離了業(yè)務(wù)的系統(tǒng)架構(gòu)抑片,都是紙上談兵卵佛。

真正在復(fù)雜業(yè)務(wù)場景、而且還高并發(fā)的時候敞斋,這個系統(tǒng)架構(gòu)一定很難搞截汪。

要理解高并發(fā),就得從高并發(fā)的根源出發(fā)——為什么會有高并發(fā)植捎?為什么高并發(fā)就很牛X衙解?

因為剛開始,系統(tǒng)都是連接數(shù)據(jù)庫的焰枢,但是數(shù)據(jù)庫支撐到每秒并發(fā)兩三千的時候蚓峦,基本就快完了舌剂。

數(shù)據(jù)庫如果瞬間承載每秒5000、8000暑椰、甚至上萬的并發(fā)霍转,一定會宕機,因為比如MySQL就壓根兒扛不住這么高的并發(fā)量一汽。

所以為什么高并發(fā)牛X避消?

因為現(xiàn)在網(wǎng)民越來越多,很多App角虫、網(wǎng)站沾谓、系統(tǒng)承載的都是高并發(fā)請求,高峰期每秒并發(fā)量幾千都很正常戳鹅。就像每年的雙十一,一年比一年的峰值高昏兆,每秒并發(fā)幾十萬枫虏,都是灑灑水。

那么爬虱,我們可以從以下幾個方面隶债,來進行考慮:

1、系統(tǒng)拆分跑筝。將一個系統(tǒng)拆分為多個子系統(tǒng)死讹,用Dubbo來搞。然后每個系統(tǒng)連一個數(shù)據(jù)庫曲梗,這樣本來就一個庫赞警,現(xiàn)在多個數(shù)據(jù)庫,就可以抗高并發(fā)了虏两。

2愧旦、緩存。必須得用緩存定罢。大部分的高并發(fā)場景笤虫,都是讀多寫少。你完全可以在數(shù)據(jù)庫和緩存里都寫一份祖凫,然后讀的時候琼蚯,大量走緩存就行了。

3惠况、MQ遭庶。必須得用MQ。

可能你還是會出現(xiàn)高并發(fā)寫的場景售滤,比如說一個業(yè)務(wù)操作里罚拟,要頻繁搞數(shù)據(jù)庫幾十次台诗,增刪改增刪改,瘋了赐俗。

那你咋辦拉队?用MQ吧,大量寫請求灌入MQ里阻逮,排隊慢慢玩兒粱快,后邊系統(tǒng)消費后慢慢寫,控制在MySQL承載范圍之內(nèi)叔扼。

4事哭、分庫分表」细唬可能到了最后鳍咱,數(shù)據(jù)庫層面還是免不了抗高并發(fā)的要求,好吧与柑,那么就將一個數(shù)據(jù)庫谤辜,拆分為多個庫,多個庫來抗更高的并發(fā)价捧。

然后將一個表丑念,拆分為多個表,每個表的數(shù)據(jù)量结蟋,保持少一點脯倚,提高SQL跑的性能。

5嵌屎、讀寫分離推正。多數(shù)時候,數(shù)據(jù)庫可能也是讀多寫少编整,沒必要所有請求舔稀,都集中在一個庫上。

可以搞個主從架構(gòu)掌测,主庫寫入内贮,從庫讀取,搞一個讀寫分離汞斧。讀流量太多的時候夜郁,還可以加更多的從庫。

6粘勒、Elasticsearch竞端,可以考慮用ES。ES是分布式的庙睡,可以隨便擴容事富,分布式天然就可以支撐高并發(fā)技俐,因為動不動就可以擴容加機器,來抗更高的并發(fā)统台。

圖片發(fā)自簡書App


如何解決單點故障雕擂?

一個網(wǎng)站,從基礎(chǔ)的硬件層贱勃、到操作系統(tǒng)層井赌、到數(shù)據(jù)庫層、到應(yīng)用程序?qū)庸笕拧⒃俚骄W(wǎng)絡(luò)層仇穗,都有可能產(chǎn)生單點故障。

如果要有效地消除單點故障戚绕,最重要的一點纹坐,是設(shè)計的時候,要盡量避免引入單點舞丛,隨著架構(gòu)的變化恰画,定期審查系統(tǒng)潛在的單點,也是有必要的瓷马。

大體可以從以下幾個方面,來消除單點故障:

增加硬盤跨晴,做鏡像欧聘。讓出錯的概率降低。

網(wǎng)卡與網(wǎng)線的單點問題端盆。系統(tǒng)里面最容易物理損壞的就是網(wǎng)線怀骤,網(wǎng)卡綁定(NIC bonding)是一個很簡單、很通用的辦法焕妙,建議你配置多個網(wǎng)卡蒋伦。

SSH服務(wù)器和Telnet服務(wù)器共存。畢竟SSH和Telnet焚鹊,都不是百分之百靠譜的事痕届;

IDC機房的單點。由于中國特色的“南北互通”末患,所以選擇IDC機房的時候研叫,一定要有冗余。

靠譜的DNS解析璧针。

原文https://csdn-app.csdn.net/csdn.apk

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嚷炉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子探橱,更是在濱河造成了極大的恐慌申屹,老刑警劉巖绘证,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哗讥,居然都是意外死亡嚷那,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門忌栅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來车酣,“玉大人,你說我怎么就攤上這事索绪『保” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵瑞驱,是天一觀的道長娘摔。 經(jīng)常有香客問我,道長唤反,這世上最難降的妖魔是什么凳寺? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮彤侍,結(jié)果婚禮上肠缨,老公的妹妹穿的比我還像新娘。我一直安慰自己盏阶,他們只是感情好晒奕,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著名斟,像睡著了一般脑慧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上砰盐,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天闷袒,我揣著相機與錄音,去河邊找鬼岩梳。 笑死囊骤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蒋腮。 我是一名探鬼主播淘捡,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼池摧!你這毒婦竟也來了焦除?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤作彤,失蹤者是張志新(化名)和其女友劉穎膘魄,沒想到半個月后乌逐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡创葡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年浙踢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灿渴。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡洛波,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骚露,到底是詐尸還是另有隱情蹬挤,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布棘幸,位于F島的核電站焰扳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏误续。R本人自食惡果不足惜吨悍,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蹋嵌。 院中可真熱鬧育瓜,春花似錦、人聲如沸栽烂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愕鼓。三九已至,卻和暖如春慧起,著一層夾襖步出監(jiān)牢的瞬間菇晃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工蚓挤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留磺送,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓灿意,卻偏偏與公主長得像估灿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缤剧,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

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