Facebook近期兩次宕機(jī) 禍起數(shù)據(jù)庫集群?
原創(chuàng)【51CTO綜合報(bào)道】據(jù)國外媒體報(bào)道,全球***的社交網(wǎng)絡(luò)Facebook由于其數(shù)據(jù)中心內(nèi)發(fā)生錯(cuò)誤,導(dǎo)致停機(jī)長達(dá)兩小時(shí)之久。這是Facebook運(yùn)行4年以來停機(jī)最長的時(shí)間。該網(wǎng)站就這次時(shí)間對(duì)用戶造成的不便深表歉意。
51CTO向您推薦:《世界***的PHP站點(diǎn) Facebook后臺(tái)技術(shù)探秘》和《專訪人人網(wǎng)黃晶:SNS網(wǎng)站后臺(tái)架構(gòu)探秘》,以便于您了解國外SNS網(wǎng)站與國內(nèi)SNS網(wǎng)站。
關(guān)于這次故障發(fā)生的原因,官方最初的說法是一個(gè)自動(dòng)驗(yàn)證值系統(tǒng)出現(xiàn)了不正?,F(xiàn)象,使得其產(chǎn)生的錯(cuò)誤遠(yuǎn)比其修復(fù)的錯(cuò)誤多。但是究其根本,更主要的原因是由于一個(gè)錯(cuò)誤的配置從而引起的數(shù)據(jù)庫集群進(jìn)入反饋循環(huán)。所以該網(wǎng)站不得不關(guān)閉了數(shù)據(jù)庫集群來恢復(fù)正確的配置,這也就是為什么Facebook的用戶會(huì)有兩個(gè)多小時(shí)打不開網(wǎng)站的原因。
原因分析:
Facebook數(shù)據(jù)庫的配置值發(fā)生了變化,在處理錯(cuò)誤的時(shí)候應(yīng)該檢測無效的配置值,并更新指定的配置值。但是新的配置值很快被系統(tǒng)認(rèn)定為無效,這樣就形成了一個(gè)死循環(huán)。更糟糕的是,每當(dāng)一個(gè)客戶發(fā)現(xiàn)錯(cuò)誤并嘗試重新查詢數(shù)據(jù)庫時(shí),會(huì)打斷它并認(rèn)定它是無效值,并刪除之前的緩存值從而創(chuàng)造更多的錯(cuò)誤。這就意味著原先的問題還沒有解決,新的請(qǐng)求流又產(chǎn)生了。在經(jīng)過一段時(shí)間后,數(shù)據(jù)庫就無法處理相關(guān)請(qǐng)求,數(shù)據(jù)庫自己產(chǎn)生了更多的請(qǐng)求給自己。我們已經(jīng)進(jìn)入一個(gè)反饋循環(huán)(feedback loop )
Facebook全球知名SNS網(wǎng)站
Facebook的官方主頁***強(qiáng)調(diào)說:“我們對(duì)這次停運(yùn)事件表示十分抱歉,但我們希望我們的用戶知道,F(xiàn)acebook對(duì)于網(wǎng)站的性能和可靠性非常的重視。
延伸閱讀
在后臺(tái)架構(gòu)中,數(shù)據(jù)庫一直是我們關(guān)心的重點(diǎn)。曾經(jīng)日壯山河的關(guān)系型數(shù)據(jù)庫,在NoSQL運(yùn)動(dòng)下,仿佛顯得日薄西山,這句話用在SNS站點(diǎn)中再合適不過了。沒錯(cuò),由于SNS站點(diǎn)的高復(fù)雜性,其對(duì)數(shù)據(jù)庫的要求非常高,高性能、可擴(kuò)展性以及可用性,缺一不可。
Facebook并不是一個(gè)傳統(tǒng)意義上的LAMP站點(diǎn),MySQL也主要作為一個(gè)Key-value的持久性存儲(chǔ)使用,而它的存儲(chǔ)系統(tǒng)則是NoSQL運(yùn)動(dòng)的一個(gè)重要組成部分——Cassandra,它的特點(diǎn)也正是SNS站點(diǎn)所需求的,盡管很多人認(rèn)為NoSQL還不夠成熟,缺乏可靠性,但Facebook的成功卻是一個(gè)活生生的例子。
Facebook數(shù)據(jù)庫架構(gòu)圖,請(qǐng)點(diǎn)擊原圖查看
Memcached是Facebook用到的一個(gè)分布式內(nèi)存緩存系統(tǒng),其已成為互聯(lián)網(wǎng)最有名氣的軟件之一了。當(dāng)然,緩存的手段是多種多樣的,僅僅保證日常后臺(tái)的穩(wěn)定運(yùn)行也是不夠的。面對(duì)一些突發(fā)事件,緩存機(jī)制更是尤為重要,特別是在數(shù)據(jù)庫服務(wù)器與Web服務(wù)器上。此次出現(xiàn)的問題雖然與Memcached沒有多大的關(guān)系,但是數(shù)據(jù)庫的正確配置,卻是我們需要注意的部分。
【編輯推薦】