解剖Twitter

作者: 鄧侃  發布時間: 2009-11-20 21:28  閱讀: 8736 次  推薦: 1   原文鏈接   [收藏]  
 

  時常聽到“浮躁”這個詞,批評現代人不求甚解,缺乏嚴謹踏實的作風。這種批評有狹隘之嫌。每代人所處的環境不同,面臨的問題不同,所以逐漸養成一種風氣, 去適應新的環境,解決新的問題。

  幾百年前,人們讀長篇小說,看歌劇,聽交響樂。到了二十世紀,大家讀雜志報紙,看電影電視,聽流行歌曲。信息時代,人們上網,讀博客,看視頻。在這些表象的背后,促成這些風氣進化的,是信息的產量與傳播速度的激增。面對海量而且迅速更新的信息,人人捧讀紅樓夢,一唱三詠的局面是難以想象的。取而代之的,是要求信息的篇幅簡短,而重點突出。

  隨著信息爆炸的加劇,微博客網站Twitter橫空出世了。用橫空出世這個詞來形容Twitter的成長,并不夸張。從2006年5月Twitter上線,到2007年12月,一年半的時間里,Twitter用戶數從0增長到6.6萬。又過了一年半,2009年5月,Twitter的用戶數達到2千萬。[1]

  Twitter用戶數的急劇攀升,與幾次重大事件有關,2007年3月美國SXSW音樂節,2008年11月印度孟買的恐怖事件,2009年1月奧巴馬總統就職,2009年6月伊朗選舉危機等等。重大事件的報導,特點是讀者多,更新快。所以,Twitter網站的成功,先決條件是能夠同時給千萬用戶提供服 務,而且提供服務的速度要快。 [2,3,4]

  有觀點認為,Twitter的業務邏輯簡單,所以競爭門檻低。前半句正確,但是后半句有商榷余地。Twitter的競爭力,離不開嚴謹的系統架構設計。

  【1】萬事開頭易

  Twitter的核心業務邏輯,在于Following和Be followed。[5]

  進入Twitter個人主頁,你會看到你following的那些作者,最近發表的微博客。所謂微博客,就是一則短信,Twitter規定,短信的長度不得超過140個字。短信不僅可以包含普通文字信息,也可以包含URL,指向某個網頁,或者照片及視頻等等。這就是following的過程。

  當你寫了一則短信并發表以后,你的followers會立刻在他們的個人主頁中看到你寫的最新短信。這就是be followed的過程。

  實現這個業務流程似乎很容易。

  1. 為每一個注冊用戶訂制一個Be-followed的表,主要內容是每一個follower的ID。同時,也訂制一個Following的表,主要內容是一個following作者的ID。

  2. 當用戶打開自己的個人空間時,Twitter先查閱Following表,找到所有following的作者的ID。然后去數據庫讀取每一位作者最近寫的短信。匯總后按時間順序顯示在用戶的個人主頁上。

  3. 當用戶寫了一則短信時,Twitter先查閱Be-followed表,找到所有followers的IDs。然后逐個更新那些followers的主頁。

  如果有follower正在閱讀他的Twitter個人主頁,主頁里暗含的JavaScript會自動每隔幾十秒,訪問一下Twitter服務器,檢查正 在看的這個個人主頁是否有更新。如果有更新,立刻下載新的主頁內容。這樣follower就能讀到最新發表的短信了。

  從作者發表到讀者獲取,中間的延遲,取決于JavaScript更新的間隔,以及Twitter服務器更新每個follower的主頁的時間。

  從系統架構上來說,似乎傳統的三層架構(Three-tier architecture [6]),足夠滿足這個業務邏輯的需要。事實上,最初的Twitter系統架構,的確就是三層架構。

  Reference,

  [1] Fixing Twitter. (http://www.bookfm.com/courseware/coursewaredetail.html?cid=100777)
  [2] Twitter blows up at SXSW conference. (http://gawker.com/tech/next-big-thing/twitter-blows-up-at-sxsw- conference-243634.php)
  [3] First Hand Accounts of Terrorist Attacks in India on Twitter and Flickr. (http://www.techcrunch.com/2008/11/26/first-hand-accounts-of-terrorist- attacks-in-india-on-twitter/)
  [4] Social Media Takes Center Stage in Iran. (http://www.findingdulcinea.com/news/technology/2009/June/Twitter-on- Iran-a-Go-to-Source-or-Almost-Useless.html)
  [5] Twitter的這些那些. (http://www.ccthere.com/article/2363334) (http://www.ccthere.com/article/2369092)
  [6] Three tier architecture. http://en.wikipedia.org/wiki/Multitier_architecture

1
0
 
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()