案例背景
2021年7月13日晚間,擁有億級用戶的B站突然無法訪問,頁面顯示加載失敗。這一突發(fā)事件迅速登上各大熱搜榜,引發(fā)了廣泛討論。B站作為知名彈幕視頻網(wǎng)站,其用戶群體龐大,此次故障對用戶體驗(yàn)和企業(yè)形象造成了嚴(yán)重影響。
面臨的挑戰(zhàn)/問題
CDN故障與網(wǎng)關(guān)問題
CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))作為B站內(nèi)容加速和負(fù)載均衡的關(guān)鍵組件,其故障導(dǎo)致用戶請求無法有效分發(fā)到各地區(qū)服務(wù)器節(jié)點(diǎn),使得大量請求直接打到網(wǎng)關(guān)上。網(wǎng)關(guān)作為服務(wù)調(diào)用的入口,承擔(dān)了保護(hù)下游服務(wù)和統(tǒng)一負(fù)載均衡的使命。然而,在CDN故障后,網(wǎng)關(guān)未能及時(shí)開啟保護(hù)措施,如熔斷降級等,導(dǎo)致網(wǎng)關(guān)過載,服務(wù)調(diào)用鏈雪崩,最終造成整個(gè)系統(tǒng)癱瘓。
微服務(wù)架構(gòu)的挑戰(zhàn)
B站采用微服務(wù)架構(gòu),將大系統(tǒng)拆分成不同的服務(wù),如視頻播放、評論處理、推薦算法等。這種架構(gòu)雖然提高了系統(tǒng)的靈活性和可擴(kuò)展性,但也帶來了高度依賴服務(wù)發(fā)現(xiàn)的問題。一旦服務(wù)發(fā)現(xiàn)系統(tǒng)(如Discovery)出現(xiàn)故障,整個(gè)系統(tǒng)將無法正確定位和處理請求,導(dǎo)致服務(wù)不可用。
采用的策略/方法
緊急搶修與故障定位
在故障發(fā)生后,B站技術(shù)團(tuán)隊(duì)迅速啟動(dòng)緊急搶修機(jī)制,通過監(jiān)控系統(tǒng)和日志分析快速定位到CDN和服務(wù)發(fā)現(xiàn)系統(tǒng)的故障。同時(shí),與云服務(wù)提供商(如阿里云)協(xié)作,共同排查和解決網(wǎng)絡(luò)訪問異常問題。
啟用備用方案與熔斷降級
在故障定位后,B站技術(shù)團(tuán)隊(duì)立即啟用備用CDN節(jié)點(diǎn)和服務(wù)發(fā)現(xiàn)機(jī)制,以緩解系統(tǒng)壓力。同時(shí),對部分非核心服務(wù)進(jìn)行熔斷降級處理,確保核心服務(wù)的可用性和穩(wěn)定性。
加強(qiáng)災(zāi)備方案與高可用設(shè)計(jì)
此次故障暴露了B站在災(zāi)備方案和高可用設(shè)計(jì)方面的不足。為此,B站加強(qiáng)了多機(jī)房容災(zāi)能力,確保在單個(gè)機(jī)房故障時(shí)能夠快速切換到備用機(jī)房。同時(shí),對系統(tǒng)架構(gòu)進(jìn)行了優(yōu)化,提高了服務(wù)的容錯(cuò)能力和彈性伸縮能力。
實(shí)施過程與細(xì)節(jié)
故障定位與搶修
- 時(shí)間節(jié)點(diǎn):故障發(fā)生在2021年7月13日晚23:44分,B站技術(shù)團(tuán)隊(duì)在幾分鐘內(nèi)即開始排查問題。
- 協(xié)作機(jī)制:與云服務(wù)提供商緊密協(xié)作,共享監(jiān)控?cái)?shù)據(jù)和日志信息,快速定位故障點(diǎn)。
- 搶修措施:重啟CDN節(jié)點(diǎn)、切換服務(wù)發(fā)現(xiàn)機(jī)制、熔斷降級非核心服務(wù)等。
災(zāi)備方案優(yōu)化
- 多機(jī)房部署:在多個(gè)地理位置部署機(jī)房,確保單個(gè)機(jī)房故障時(shí)不會(huì)影響整體服務(wù)。
- 數(shù)據(jù)同步與備份:加強(qiáng)數(shù)據(jù)同步機(jī)制,確保各機(jī)房數(shù)據(jù)的一致性;定期備份數(shù)據(jù),防止數(shù)據(jù)丟失。
- 自動(dòng)化故障切換:開發(fā)自動(dòng)化故障切換系統(tǒng),確保在機(jī)房故障時(shí)能夠快速切換到備用機(jī)房。
高可用設(shè)計(jì)優(yōu)化
- 服務(wù)容錯(cuò):提高服務(wù)的容錯(cuò)能力,確保單個(gè)服務(wù)故障時(shí)不會(huì)影響整個(gè)系統(tǒng)。
- 彈性伸縮:根據(jù)系統(tǒng)負(fù)載動(dòng)態(tài)調(diào)整服務(wù)實(shí)例數(shù)量,確保系統(tǒng)在高并發(fā)下的穩(wěn)定性。
- 監(jiān)控與告警:完善監(jiān)控系統(tǒng)和告警機(jī)制,及時(shí)發(fā)現(xiàn)并處理潛在問題。
結(jié)果與成效評估
經(jīng)過緊急搶修和優(yōu)化措施的實(shí)施,B站在故障發(fā)生后一個(gè)多小時(shí)內(nèi)逐步恢復(fù)了部分功能,至14日凌晨2點(diǎn)15分,所有功能均恢復(fù)正常。此次故障對B站的用戶體驗(yàn)和品牌形象造成了一定影響,但通過快速響應(yīng)和有效應(yīng)對,B站成功挽回了部分損失。 在災(zāi)備方案和高可用設(shè)計(jì)方面,B站通過此次事件深刻認(rèn)識到了自身的不足,并采取了有效措施進(jìn)行改進(jìn)。未來,B站將進(jìn)一步加強(qiáng)系統(tǒng)架構(gòu)的優(yōu)化和災(zāi)備方案的建設(shè),提高系統(tǒng)的穩(wěn)定性和可用性。
經(jīng)驗(yàn)總結(jié)與啟示
加強(qiáng)技術(shù)監(jiān)控與預(yù)警
建立完善的監(jiān)控系統(tǒng)和告警機(jī)制是預(yù)防類似故障的關(guān)鍵。通過實(shí)時(shí)監(jiān)控系統(tǒng)的運(yùn)行狀態(tài)和性能指標(biāo),及時(shí)發(fā)現(xiàn)并處理潛在問題,可以有效降低故障發(fā)生的概率和影響范圍。
優(yōu)化系統(tǒng)架構(gòu)與災(zāi)備方案
采用微服務(wù)架構(gòu)的企業(yè)應(yīng)加強(qiáng)對服務(wù)發(fā)現(xiàn)系統(tǒng)的監(jiān)控和維護(hù),確保其在高并發(fā)下的穩(wěn)定性和可用性。同時(shí),加強(qiáng)多機(jī)房容災(zāi)能力建設(shè),確保在單個(gè)機(jī)房故障時(shí)能夠快速切換到備用機(jī)房,保障服務(wù)的連續(xù)性。
提高服務(wù)容錯(cuò)與彈性伸縮能力
提高服務(wù)的容錯(cuò)能力和彈性伸縮能力是應(yīng)對高并發(fā)和突發(fā)故障的重要手段。通過增加服務(wù)實(shí)例數(shù)量、采用負(fù)載均衡策略、實(shí)現(xiàn)服務(wù)降級等措施,可以有效提高系統(tǒng)的穩(wěn)定性和可用性。
加強(qiáng)團(tuán)隊(duì)協(xié)作與應(yīng)急演練
加強(qiáng)與云服務(wù)提供商的協(xié)作機(jī)制,共享監(jiān)控?cái)?shù)據(jù)和日志信息,可以快速定位故障點(diǎn)并采取措施。同時(shí),定期進(jìn)行應(yīng)急演練和培訓(xùn),提高團(tuán)隊(duì)?wèi)?yīng)對突發(fā)故障的能力和效率。
Q&A
Q1:B站崩了事件對用戶體驗(yàn)有何影響? A1:B站崩了事件導(dǎo)致用戶無法正常訪問和使用B站的功能,如觀看視頻、發(fā)表評論等,對用戶體驗(yàn)造成了嚴(yán)重影響。同時(shí),該事件也引發(fā)了用戶對B站技術(shù)穩(wěn)定性和可靠性的質(zhì)疑。 Q2:B站采取了哪些措施來應(yīng)對此次故障? A2:B站采取了緊急搶修、故障定位、啟用備用方案與熔斷降級等措施來應(yīng)對此次故障。同時(shí),加強(qiáng)了災(zāi)備方案和高可用設(shè)計(jì)的優(yōu)化工作,以提高系統(tǒng)的穩(wěn)定性和可用性。 通過本次案例研究,我們深刻認(rèn)識到了技術(shù)監(jiān)控、系統(tǒng)架構(gòu)優(yōu)化、服務(wù)容錯(cuò)與彈性伸縮能力等方面的重要性。對于互聯(lián)網(wǎng)企業(yè)而言,只有不斷加強(qiáng)技術(shù)建設(shè)和優(yōu)化工作,才能確保系統(tǒng)的穩(wěn)定性和可用性,為用戶提供更好的服務(wù)體驗(yàn)。
文章評論 (3)
發(fā)表評論