閱讀255 返回首頁    go 阿裏雲 go 技術社區[雲棲]


鹿晗關曉彤公開戀情,是如何把新浪微博的服務器搞垮的?

為什麼客戶端刷新、評論這些功能掛了?原因是什麼?數據量過大嗎?

(不關我們的事.jpg)

1

洛神賦

數據分析,頂級流量無疑。

微博覆蓋用戶超8億人次。

熱搜相關霸占20+,6個爆。

淘寶搜索鹿晗。

此外,鹿晗公布戀情全世界都知道了。

全球趨勢第7。

韓國KBS的推特。

日本熱搜趨勢第二。

韓國熱搜第一。

法國:

越南:

中央出來安慰大家:

知乎1小時出121道新題,以下是不完全截圖。

2

匿名用戶

據目前已有的信息猜測是數據庫被壓垮了,先發猜想,稍後寫個程序分析當時的點讚評論轉發數據驗證猜想。

微博這樣的網站,如果被大流量壓垮,不太可能是非必需字段沒有容錯。之前經曆過幾次熱門事件,我相信在爆發熱點新聞的時候,微博會暫時犧牲一點數據準確性來保證關鍵服務可用。也就是說,光讀請求很難壓垮微博。

根據事故時的微博點讚數、轉發數、評論數、評論的回複數、評論的點讚數、轉發的評論轉發點讚數等的量,微博極可能是由於事發當時需要寫入數據庫的請求太多(寫行為峰值可能達到了幾十萬甚至更高),以及大部分寫都會落到同一條微博上,而且某些寫操作還需要觸發相應的其他寫行為(回複評論需要通知評論者、點讚需要進關注者 feed 等),數據庫壓力過大扛不過來,最終跪了一會兒。其實如果緩存做好,這時候還是可以滿足核心數據讀請求的(當然微博緩存做的並不好,我微博個人頁數據錯誤很久了反饋也沒用)。如果數據庫壓力過大時對部分寫請求異步化,或者考慮暫時拋棄部分請求換取穩定性,當然這樣也各有利弊,不一定是好的。

可以抓取當時鹿晗發的微博的所有評論轉發回複點讚的時間,看下故障前幾秒成功的寫行為究竟有多少。

不負責任的未經驗證的猜測(畫圖水平有限,省略了部分過程,但是從上下兩個過度的箭頭數,大致表達了很多請求是讀且未壓到數據庫,將就看吧[手動捂臉.jpg]):

3

石橋碼農

原來中國最厲害的黑客在娛樂圈啊。

微博團隊說,臨時加了1千台服務器,也就用了幾個小時。

每台按使用4小時計算,2核,1GB基礎流量,約合3元,這1000台也僅3000+的費用。

有人說,“是數據庫被壓垮了”,其實不是。數據庫的吞吐量遠大於web server。

有人說,是“bin log忘記清理”,也不是了,這種分布式大係統都有自動清理機製,否則人工清理將是噩夢啊。

有人說,是因為“微博自動擴容的算法沒寫好”,這是不對的,恰是因為自動擴容的算法寫的太好了,才有了這次災難。如果流量短時間內暴漲的太曆害,稍做Delay幾百毫秒,災情就會過去;如果反應非常靈敏,流量上來了馬上擴容增機,很快服務器集群池就會耗淨。等到最後一台服務器被100%征用後,任何一個用戶的回複就成了壓倒駱駝的最後一根稻草,一個服務器跨了,流量迅速壓向其它服務器,引發多米諾骨牌效應,服務器們指數級迅速宕下。

所以說,恰是因為微博分布式係統的自我擴容機製太好了,所以才有了這次災難。鹿晗發微,僅是外因。

經此一役,程序員圈無人不知鹿黑客;

經此一役,微博再不敢低估鹿飯們的能量,明天馬上開會擴大服務器備用空間;

經此一役,風瀟瀟兮易水寒,以後,明星以擠跨微博為榮,試問國內,誰還能刷新鹿黑客的記錄,像票房一樣,拭目以待...

4

瑾兒

程序猿單身那麼多,好不容易挑個好日子結婚。邊結婚邊寫代碼……

5

Yang magic

常見的web攻擊有哪些?

答案:DDoS, XSS,SQL注入,公布戀情。

6

求真之理

一次成功的熱度,當然要炸一個服務器祭天了。

最後更新:2017-10-11 13:24:41

  上一篇:go 鹿晗宣布戀情,網友:今天我們都是關曉彤
  下一篇:go 揭秘:鹿晗不是男人的三條實錘,關曉彤隻不過是鹿晗的擋箭牌