非死book架構解讀

jopen 8年前發布 | 26K 次閱讀 Facebook 軟件架構

從我看過的各種資料,還有與各式人等的交談中,可以得出非死book現在的架構是這樣的:

  • Web前端用PHP語言編寫,然后用HipHop Compiler[1]轉換為C++語言,再用g++編譯器編寫,從而提供高性能的模板與web邏輯執行層。
  • 完全依賴靜態編譯所造成的限制,讓非死book開始啟用HipHop Interpreter [2]及HipHop虛擬機,將PHP代碼轉譯為HipHop ByteCode[3]。
  • 其業務邏輯以服務形式存在,使用Thrift框架[4]。其中一些服務根據具體需求,在實現時使用了PHP、C++或者Java語言(可能還用到了一些其他語言)。
  • 使用Java實現的服務并未使用任何常規的企業應用服務,而是使用非死book的定制應用服務器。一開始這些都被視為重復工作,不過隨著這些服務僅(或大多)使用Thrift框架,Tomcat甚至Jetty都顯得開銷過大、值不符實了。
  • 用MySQL、Memcached[5]、Hadoop’s HBase[6]實現持久化;用Memcached作為MySQL緩存與通用緩存。
  • 用Hadoop和Hive實現離線處理。
  • 類似日志、鏈接與feed之類的數據傳輸用Scribe[7]實現;用Scribe-HDFS [8]來完成HDFS的聚合存儲工作;從而可以用MapReduce進行深入擴展分析。
  • BigPipe[9]是他們的定制技術,用流水線邏輯加快頁面呈現。
  • 用Varnish Cache[10]實現HTTP代理,這套軟件因其性能與效率較高而受到青睞[11]。
  • 非死book用戶所發布的照片數以億計,其存儲由Haystack這個ad-hoc存儲解決方案(由非死book開發)來處理——包括對其進行低級別優化與只擴展寫入方式[12]。
  • 非死book Message使用了自身架構——眾所周知是基于分區與動態集群管理的架構。業務邏輯與持久化被封裝到所謂的“Cell”中。每個Cell處理一部分用戶的請求;隨著用戶數增加再擴展新的Cell[13]。使用HBase實現持久化[14]。
  • 非死book Message的搜索引擎建立在反向索引之上,存儲于HBase之中[15]。
  • 非死book搜索引擎的實現細節尚不得而知。
  • 預輸入搜索(typeahead search)使用定制化存儲與檢索邏輯[16]。
  • 聊天服務建立在Epoll服務器之上,由Erlang開發,用Thrift[17]訪問。
  • 非死book還構建了一個自動化系統,負責啟動適當的修復工作流來管理應對警報,并在故障無法解決時通知人類管理員[18]。
已知信息中,各個組件的配置資源、一些信息還有數字如下:
  • 非死book擁有超過6萬臺服務器 [18]。最近發布的數據中心位于俄勒岡州普賴恩維爾市,硬件完全自行設計[19] ,并被歸為Open Compute Project[20]。
  • Memcached所存儲與處理的數據多達300TB[21]。
  • 其Hadoop與Hive集群由3000臺8核、32G內存、12TB空間的服務器組成,總計達到2.4萬核、96TB內存、36PB空間[22]。
  • 在2010年7月份就已達到每天1000億的點擊量,500億張圖片,3萬億個緩存對象,130TB的日志[22]。
  • 備注:Cassandra已經不再使用。非死book的實時分析系統是基于記錄所有輸入的鏈接(來自用戶頁面的like和comment請求)。將其記錄在HDFS中,而不是用Puma將其拽出再分批存儲到HBase中。
相關資料與可參考文章還包括:

非死book近期發布了一篇博文,詳細描述了將會在Altoona數據中心試用的下一代網絡架構。這種處理大流量的方式非常新穎,優于傳統方式與協議。 非死book發布了下一代網絡

還有就是近期宣布強化搜索功能,以大數據分析與數據管理基礎作為支持。非死book大數據分析增強搜索功能

另外可參考的文章還有: 參考資料包括:

[1] HipHop for PHP

[2] Making HPHPi Faster

[3] The HipHop Virtual Machine

[4] Thrift

[5] Memcached

[6] HBase

[7] Scribe

[8] Scribe-HDFS

[9] BigPipe

[10] Varnish Cache

[11] 非死book goes for Varnish

[12] Needle in a haystack: efficient storage of billions of photos

[13] Scaling the Messages Application Back End

[14] The Underlying Technology of Messages

[15] The Underlying Technology of Messages Tech Talk

[16] 非死book’s typeahead search architecture

[17] 非死book Chat

[18] Who has the most Web Servers?

[19] Building Efficient Data Centers with the Open Compute Project

[20] Open Compute Project

[21] 非死book’s architecture presentation at Devoxx 2010

[22] Scaling 非死book to 500 millions users and beyond

原文鏈接: What is 非死book’s architecture? (譯者/Vera 責編/錢曙光)

來自: http://www.iteye.com/news/31300

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!