Twitter 高併發高可用架構

2021-06-17 22:56:21 字數 1552 閱讀 4018

解決 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萬個關注者。 

garfielt

翻譯於 1個月前

3人頂

頂 翻譯的不錯哦!

一些需要列出來的要點:

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

garfielt

翻譯於 1個月前

2人頂

頂 翻譯的不錯哦!

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

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

garfielt

翻譯於 1個月前

1人頂

頂 翻譯的不錯哦!

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

garfielt

翻譯於 1個月前

1人頂

頂 翻譯的不錯哦!

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

pull模式

push模式

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

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

garfielt

翻譯於 1個月前

0人頂

頂 翻譯的不錯哦!

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

李勇2翻譯於 1個月前

0人頂

頂 翻譯的不錯哦!

garfielt

翻譯於 1個月前

1人頂

頂 翻譯的不錯哦!

在搜尋timeline時:

yale8848

翻譯於 25天前

0人頂

頂 翻譯的不錯哦!

桔子翻譯於 23天前

1人頂

頂 翻譯的不錯哦!

桔子翻譯於 23天前

0人頂

頂 翻譯的不錯哦!

桔子翻譯於 23天前

0人頂

頂 翻譯的不錯哦!

Twitter 高併發高可用架構

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

高併發 高可用

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

高併發與高可用

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