Twitter 高併發高可用架構

2022-03-25 15:28:02 字數 1200 閱讀 2937

****:

解決 twitter的「問題」就像玩玩具一樣,這是乙個很有趣的擴充套件性比喻。每個人都覺得 twitter很簡單,乙個菜鳥架構師隨便擺弄一下個可伸縮的 twitter就有了,就這麼簡單。然而事實不是這樣, twitter的工程副總裁 raffi krikorian細緻深入的描述了在 twitter在可伸縮性上的演化過程,如果你想知道 twitter的如何工作—從這裡開始吧。

twitter發展太快,一切轉瞬即過,但 twitter已經長大了。它從一開始乙個在ruby on rails上苦苦掙扎的小**變成乙個以服務為 核心驅動的漂亮站點,服務停掉都難得一見,很大的乙個轉變。

twitter現在有1.5億全球活躍使用者,300k qps,22 mb/秒的流量,系統每天處理4億條推特資料,用5分鐘時間將lady gaga手尖流淌出的資訊傳遞到她3100萬個關注者。

一些需要列出來的要點:

twitter是如何工作的?通過raffi精彩的演講來發現吧…

可靠的實現是乙個對所有推特的select語句,響應忙死卡死。

資料扇形輸出的解決方案。當接收到新推特時需要弄清楚應該把它發到哪,這樣可以更快速簡單的讀取,不要在讀操作上做任何邏輯計算,效能上寫要比讀慢得多,能做到4000 qps。

twitter有乙個架構師部門,負責twitter整體架構,研究技術改進路線(他們想一直走在前面)。

兩種主要的時間軸:使用者的及主頁的。

pull模式

push模式

使用者流連線。 tweetdeck 和twitter的mac版都經過這裡。登入的時,twitter會檢視你的社交圖,只會推送那些你關注的人的訊息,重建主頁時間軸,而不是在持久的連線過程中使用同乙個時間軸 。

查詢api,twitter收到持續查詢時,如果有新的推特發布並且符合查詢條件,系統才會將這條推特發給相應的連線。

高觀點下的基於pull(拉取方式)的時間軸:

在搜尋timeline時:

tweet的內容和基礎設施幾乎沒什麼關係。t-bird

timeline對此毫不關心。

英文原文:the

architecture twitter uses to deal with 150m active users, 300k qps, a 22 mb/s firehose, and s...

參與翻譯(4人):

garfielt,桔子

,李勇2

,yale8848

Twitter 高併發高可用架構

解決 twitter的 問題 就像玩玩具一樣,這是乙個很有趣的擴充套件性比喻。每個人都覺得 twitter很簡單,乙個菜鳥架構師隨便擺弄一下個可伸縮的 twitter就有了,就這麼簡單。然而事實不是這樣,twitter的工程副總裁 raffi krikorian細緻深入的描述了在 twitter在可...

高併發 高可用

高併發 提高系統併發能力的方法主要有兩種 前者垂直擴充套件可以通過提公升單機硬體效能,或者提公升單機架構效能,來提高併發性,但單機效能總是有極限的,網際網路分布式架構設計高併發終極解決方案還是後者 水平擴充套件。網際網路分層架構中,各層次水平擴充套件的實踐又有所不同 1 反向 層可以通過 dns輪詢...

高併發與高可用

事發事中 事後高併發 增加處理人手 事前 副本 隔離 配額 提前預案 探知 事發 監控 報警 事中 降級 回滾 應急預案,fail 系列 事後 覆盤 思考 技改 fail 系列 當出現下游呼叫失敗時,我們一般有幾種處理方式 failretry,即失敗重試,需要配合退避時間,否則馬上重試不一定會有效果...