FACEBOOK 的系統架構
- Web 前端是由 PHP 寫的。Facebook 的 HipHop 會把PHP轉成 C++ 並用 g++編譯,這樣就可以為模板和Web邏賀業務層提供高的效能。
- 業務邏輯以Service的形式存在,其使用 。這些Service根據需求的不同由PHP,C++或Java實現(也可以用到了其它的一些語言……)
- 用Java寫的Services沒有用到任何一個企業級的應用伺服器,但用到了Facebook自己的定製的應用伺服器。看上去好像是重新發明輪子,但是這些Services只被暴露給Thrift使用(絕大所數是這樣),Tomcat太重量級了,即使是Jetty也可能太過了點,其附加值對Facebook所需要的沒有意義。
- 持久化由MySQL, , Facebook 的 , Hadoop 的 完成。Memcached 使用了MySQL的記憶體Cache。Facebook 工程師承認他們的Cassandra 使用正在減少,因為他們更喜歡HBase,因為它的更簡單的一致性模型,以到其MapReduce能力。
- 離線處理使用Hadoop 和 Hive。
- 日誌,點選,feeds資料使用 ,把其聚合並存在 HDFS,其使用 Scribe-HDFS ,因而允許使用MapReduce進行擴充套件分析。
- 是他們的定製技術,用來加速頁面顯示。
- 用作HTTP代理。他們用這個的原因是 高速和有效率。
- 用來搞定使用者 ,其由Haystack處理,Facebook自己開發了一個Ad-Hoc儲存方案,其主要做了一些低層最佳化和“僅追加”寫技術 .
- Facebook Messages 使用了自己的架構,其明顯地構建在了一個動態叢集的基礎架構上。業務邏輯和持久化被封裝在一個所謂的’Cell’。每個‘Cell’都處理一部分使用者,新的‘Cell’可以因為訪問熱度被新增。 持久化歸檔使用HBase 。
- Facebook Messages 的搜尋引擎由儲存在HBase中的一個倒置索引的構建。
- Facebook 搜尋引擎實現細節據我所知目前是未知狀態。
- Typeahead 搜尋使用了一個定製的儲存和檢索邏輯。
- Chat 基於一個Epoll 伺服器,這個伺服器由Erlang 開發,由Thrift存取
關於那些供給給上述元件的資源,下面是一些資訊和數量,但是有一些是未知的:
- Facebook估計有超過60,000 臺伺服器。他們最新的資料中心在俄勒岡州的Prineville,其基於完全自定設計的硬體,那是最近才公開的 。
- 300 TB 的資料存在 Memcached 中處理
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31365439/viewspace-2682060/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [譯]Facebook的架構架構
- Android系統架構-----Android的系統體系架構Android架構
- 系統架構師大會:中國系統架構師的盛宴架構
- IOS的系統架構iOS架構
- 解析 Facebook 的 Flux 應用架構UX應用架構
- HDFS架構指南(分散式系統Hadoop的檔案系統架構)架構分散式Hadoop
- Android的系統架構Android架構
- SAP的三系統架構架構
- 廣告系統架構架構
- 安卓系統架構安卓架構
- 系統架構師架構
- Facebook移動架構:Android Flux架構詳解架構AndroidUX
- 分散式系統的架構思路分散式架構
- 系統架構師的修煉架構
- PetShop的系統架構設計架構
- Tomcat系統架構Tomcat架構
- 系統架構演變架構
- 資訊系統架構架構
- SaaS架構:多租戶系統架構設計架構
- SaaS架構:中央庫存系統架構設計架構
- 「系統架構」CAP定理的含義架構
- 微服務架構下的系統整合微服務架構
- 如何提高對系統架構的理解架構
- Feed流系統重構-架構篇架構
- 面向模式構建系統架構 (轉)模式架構
- 網站的系統架構的摘錄網站架構
- ModStart開發者文件-系統架構架構
- [系統架構] AKKA工作原理架構
- 第3章 系統架構架構
- 2.03 hyperledger fabric系統架構架構
- Android系統架構圖Android架構
- Pixhawk系統架構介紹架構
- Android-系統架構Android架構
- BOSS系統技術架構架構
- Java 系統架構設計Java架構
- 工作總結--系統架構架構
- 訊息推送系統架構架構
- 資訊系統通用架構架構