
本篇文章為大家展示了FACEBOOK 的系統(tǒng)架構(gòu),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Web 前端是由 PHP 寫的。Facebook 的 HipHop 會把PHP轉(zhuǎn)成 C++ 并用 g++編譯,這樣就可以為模板和Web邏賀業(yè)務(wù)層提供高的性能。
業(yè)務(wù)邏輯以Service的形式存在,其使用 Thrift 。這些Service根據(jù)需求的不同由PHP,C++或Java實現(xiàn)(也可以用到了其它的一些語言……)
用Java寫的Services沒有用到任何一個企業(yè)級的應用服務(wù)器,但用到了Facebook自己的定制的應用服務(wù)器??瓷先ズ孟袷侵匦掳l(fā)明輪子,但是這些Services只被暴露給Thrift使用(絕大所數(shù)是這樣),Tomcat太重量級了,即使是Jetty也可能太過了點,其附加值對Facebook所需要的沒有意義。
持久化由MySQL, Memcached , Facebook 的 Cassandra , Hadoop 的 HBase 完成。Memcached 使用了MySQL的內(nèi)存Cache。Facebook 工程師承認他們的Cassandra 使用正在減少,因為他們更喜歡HBase,因為它的更簡單的一致性模型,以到其MapReduce能力。
離線處理使用Hadoop 和 Hive。
日志,點擊,feeds數(shù)據(jù)使用 Scribe ,把其聚合并存在 HDFS,其使用 Scribe-HDFS ,因而允許使用MapReduce進行擴展分析。
BigPipe 是他們的定制技術(shù),用來加速頁面顯示。
Varnish Cache 用作HTTP代理。他們用這個的原因是 高速和有效率。
用來搞定用戶 上傳的十億張照片的存儲,其由Haystack處理,F(xiàn)acebook自己開發(fā)了一個Ad-Hoc存儲方案,其主要做了一些低層優(yōu)化和“僅追加”寫技術(shù) .
Facebook Messages 使用了自己的架構(gòu),其明顯地構(gòu)建在了一個動態(tài)集群的基礎(chǔ)架構(gòu)上。業(yè)務(wù)邏輯和持久化被封裝在一個所謂的’Cell’。每個‘Cell’都處理一部分用戶,新的‘Cell’可以因為訪問熱度被添加。 持久化歸檔使用HBase 。
Facebook Messages 的搜索引擎由存儲在HBase中的一個倒置索引的構(gòu)建。
Facebook 搜索引擎實現(xiàn)細節(jié)據(jù)我所知目前是未知狀態(tài)。
Typeahead 搜索使用了一個定制的存儲和檢索邏輯。
Chat 基于一個Epoll 服務(wù)器,這個服務(wù)器由Erlang 開發(fā),由Thrift存取
關(guān)于那些供給給上述組件的資源,下面是一些信息和數(shù)量,但是有一些是未知的:
Facebook估計有超過60,000 臺服務(wù)器。他們最新的數(shù)據(jù)中心在俄勒岡州的Prineville,其基于完全自定設(shè)計的硬件,那是最近才公開的 Open Compute 項目。
300 TB 的數(shù)據(jù)存在 Memcached 中處理
上述內(nèi)容就是FACEBOOK 的系統(tǒng)架構(gòu),你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。