【Inside】做出Facebook規模,你所需要的技術元件總覽

2012.06.27 by
Sting Tao
【Inside】做出Facebook規模,你所需要的技術元件總覽
Facebook的強大後,有些有志之士在做創新服務網站有時會喊出,“打造下個Facebook社交網站…”之類的話。Facebook上面撐...

Facebook的強大後,有些有志之士在做創新服務網站有時會喊出,“打造下個Facebook社交網站…”之類的話。

Facebook上面撐了數億人,很快會到十億人。 這個網站到今天速度還是很快,背後到底用了哪些技術?

****

幾個禮拜前Facebook的技術經理Jason Sobel在 Qcon 中有精彩的介紹,要看影片 可到InfoQ去看

另外,在Quora上,則有飽讀詩書的 Michaël Figuière 做了 完整整理 ,讓大家很容易地一次就看到Facebook目前採用的技術架構與元件有哪些,筆者特地翻譯整理如後。

為了台灣網路產業技術提升,對於您現在手中的網路服務,不仿參考一下Facebook做些提升或優化改變:

前端程式採用PHP撰寫。寫完之後透過Facebook做的HipHop *
商業邏輯的元件都用Apache Thrift *
由於使用了Thrift 來提供服務,運行JAVA程式碼的伺服器都是用Facebook自行研發的軟體,而不採用tomcat或Jetty *
資料儲存的部份用了MySQL, Memcached,cassandra , 還有HBase。Memcached拿來做MySQL的暫存,也用作其他一般用途的暫存。近來,cassandra使用率有下降趨勢,而HBase *
*
紀錄檔,點擊數與feed等等是用Scribe *
為了加速瀏覽器上畫出網頁這件事,Facebook自製了BigPipe *
Varnish Cache *
Facebook數十億張的照片由Haystack *
Facebook訊息用了自己的動態叢集管理架構。商業邏輯跟儲存一併封裝成一個Cell,每個Cell處理一部份的使用者,因此使用者增加只需要增加Cell。儲存的部份用的是HBase *
Facebook訊息中的搜尋是透過在HBase *
聊天室是用Erlang開發的Epoll來完成,一樣透過Thrift *

那這樣的元件可以達成怎樣的效能哩?底下是相關公開資訊:


  • 所有Memcached的執行程序所有儲存的資料總量達300TB *

  • 每天有一千億次的點擊,光log也有130TB *

出自 Inside部落格

每日精選科技圈重要消息