足球资料库数据/孙祥/nba五佳球/足球直播哪个平台好 - cctv5今日现场直播

首頁 > 知識庫 > 正文

Facebook架構解讀
2016-01-19 21:57:44   來源: mengyidan1988   評論:0 點擊:

從我看過的各種資料,還有與各式人等的交談中,可以得出Facebook現在的架構是這樣的: Web前端用PHP語言編寫,然后用HipHop Compiler[1]轉換為C++語言,再用g++編譯器編寫,從



從我看過的各種資料,還有與各式人等的交談中,可以得出Facebook現在的架構是這樣的:
  • Web前端用PHP語言編寫,然后用HipHop Compiler[1]轉換為C++語言,再用g++編譯器編寫,從而提供高性能的模板與web邏輯執行層。
  • 完全依賴靜態編譯所造成的限制,讓Facebook開始啟用HipHop Interpreter [2]及HipHop虛擬機,將PHP代碼轉譯為HipHop ByteCode[3]。
  • 其業務邏輯以服務形式存在,使用Thrift框架[4]。其中一些服務根據具體需求,在實現時使用了PHP、C++或者Java語言(可能還用到了一些其他語言)。
  • 使用Java實現的服務并未使用任何常規的企業應用服務,而是使用Facebook的定制應用服務器。一開始這些都被視為重復工作,不過隨著這些服務僅(或大多)使用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]。
  • Facebook用戶所發布的照片數以億計,其存儲由Haystack這個ad-hoc存儲解決方案(由Facebook開發)來處理——包括對其進行低級別優化與只擴展寫入方式[12]。
  • Facebook Message使用了自身架構——眾所周知是基于分區與動態集群管理的架構。業務邏輯與持久化被封裝到所謂的“Cell”中。每個Cell處理一部分用戶的請求;隨著用戶數增加再擴展新的Cell[13]。使用HBase實現持久化[14]。
  • Facebook Message的搜索引擎建立在反向索引之上,存儲于HBase之中[15]。
  • Facebook搜索引擎的實現細節尚不得而知。
  • 預輸入搜索(typeahead search)使用定制化存儲與檢索邏輯[16]。
  • 聊天服務建立在Epoll服務器之上,由Erlang開發,用Thrift[17]訪問。
  • Facebook還構建了一個自動化系統,負責啟動適當的修復工作流來管理應對警報,并在故障無法解決時通知人類管理員[18]。

已知信息中,各個組件的配置資源、一些信息還有數字如下:
  • Facebook擁有超過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已經不再使用。Facebook的實時分析系統是基于記錄所有輸入的鏈接(來自用戶頁面的like和comment請求)。將其記錄在HDFS中,而不是用Puma將其拽出再分批存儲到HBase中。

相關資料與可參考文章還包括:
Facebook近期發布了一篇博文,詳細描述了將會在Altoona數據中心試用的下一代網絡架構。這種處理大流量的方式非常新穎,優于傳統方式與協議。 Facebook發布了下一代網絡

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

另外可參考的文章還有:

參考資料包括:
[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] Facebook 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] Facebook’s typeahead search architecture
[17] Facebook Chat
[18] Who has the most Web Servers?
[19] Building Efficient Data Centers with the Open Compute Project
[20] Open Compute Project
[21] Facebook’s architecture presentation at Devoxx 2010
[22] Scaling Facebook to 500 millions users and beyond

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

相關熱詞搜索:facebook 應用服務器 架構 architecture 企業架構

上一篇: 優秀大數據GitHub項目一覽
下一篇:每天學點C++知識:復制粘貼代碼千萬要小心

分享到: 收藏