自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

揭秘Facebook 的系統(tǒng)架構(gòu)

開發(fā) 前端
Facebook是一個社交網(wǎng)路服務(wù)網(wǎng)站,同時Facebook是美國排名第一的照片分享站點,每天上載八百五十萬張照片。那么Facebook系統(tǒng)架構(gòu)是什么樣的呢?本文將為你揭秘!

來源:http://www.quora.com/What-is-Facebooks-architecture (由Micha?l Figuière回答)

根據(jù)我現(xiàn)有的閱讀和談話,我所理解的今天Facebook的架構(gòu)如下:

◆  Web 前端是由 PHP 寫的。Facebook 的 HipHop [1] 會把PHP轉(zhuǎn)成 C++并用 g++編譯,這樣就可以為模板和Web邏賀業(yè)務(wù)層提供高的性能。

◆  業(yè)務(wù)邏輯以Service的形式存在,其使用Thrift [2]。這些Service根據(jù)需求的不同由PHP,C++或Java實現(xiàn)(也可以用到了其它的一些語言……)

◆  用Java寫的Services沒有用到任何一個企業(yè)級的應(yīng)用服務(wù)器,但用到了Facebook自己的定制的應(yīng)用服務(wù)器??瓷先ズ孟袷侵匦掳l(fā)明輪子,但是這些Services只被暴露給Thrift使用(絕大所數(shù)是這樣),Tomcat太重量級了,即使是Jetty也可能太過了點,其附加值對Facebook所需要的沒有意義。

◆  持久化由MySQL, Memcached [3], Facebook 的 Cassandra [4], Hadoop 的 HBase [5] 完成。Memcached 使用了MySQL的內(nèi)存Cache。Facebook 工程師承認他們的Cassandra 使用正在減少,因為他們更喜歡HBase,因為它的更簡單的一致性模型,以到其MapReduce能力。

◆  離線處理使用Hadoop 和 Hive

◆  日志,點擊,feeds數(shù)據(jù)使用Scribe [6],把其聚合并存在 HDFS,其使用Scribe-HDFS[7],因而允許使用MapReduce進行擴展分析。

◆  BigPipe [8] 是他們的定制技術(shù),用來加速頁面顯示。

◆  Varnish Cache [9]用作HTTP代理。他們用這個的原因是高速和有效率。 [10].

◆  用來搞定用戶上傳的十億張照片的存儲,其由Haystack處理,F(xiàn)acebook自己開發(fā)了一個Ad-Hoc存儲方案,其主要做了一些低層優(yōu)化和“僅追加”寫技術(shù) [11].

◆  Facebook Messages 使用了自己的架構(gòu),其明顯地構(gòu)建在了一個動態(tài)集群的基礎(chǔ)架構(gòu)上。業(yè)務(wù)邏輯和持久化被封裝在一個所謂的’Cell’。每個‘Cell’都處理一部分用戶,新的‘Cell’可以因為訪問熱度被添加[12]。持久化歸檔使用HBase [13]。

◆  Facebook Messages 的搜索引擎由存儲在HBase中的一個倒置索引的構(gòu)建。 [14]

◆  Facebook 搜索引擎實現(xiàn)細節(jié)據(jù)我所知目前是未知狀態(tài)。

◆  Typeahead 搜索使用了一個定制的存儲和檢索邏輯。 [15]

◆  Chat 基于一個Epoll 服務(wù)器,這個服務(wù)器由Erlang 開發(fā),由Thrift存取 [16]

◆  關(guān)于那些供給給上述組件的資源,下面是一些信息和數(shù)量,但是有一些是未知的:

◆  Facebook估計有超過60,000 臺服務(wù)器[16]。他們最新的數(shù)據(jù)中心在俄勒岡州的Prineville,其基于完全自定設(shè)計的硬件[17] 那是最近才公開的 Open Compute 項目[18]。

◆  300 TB 的數(shù)據(jù)存在 Memcached 中處理 [19]

◆  他們的Hadoop 和 Hive 集群由3000 服務(wù)器組成,每臺服務(wù)器有8個核,32GB的內(nèi)存,12TB的硬盤,全部有2萬4千個CPU的核,96TB內(nèi)存和36PB的硬盤。 [20]

◆  每天有1000億的點擊量,500億張照片,100 billion hits per day, 50 billion photos, 3 萬億個對象被 Cache,每天130TB的日志(2010年7月的數(shù)據(jù)) [21]

參考引用

[1] HipHop for PHP: http://developers.facebook.com/blog/post/358

[2] Thrift: http://thrift.apache.org/

[3] Memcached: http://memcached.org/

[4] Cassandra: http://cassandra.apache.org/

[5] HBase: http://hbase.apache.org/

[6] Scribe: https://github.com/facebook/scribe

[7] Scribe-HDFS: http://hadoopblog.blogspot.com/2009/06/hdfs-scribe-integration.html

[8] BigPipe: http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919

[9] Varnish Cache: http://www.varnish-cache.org/

[10] Facebook goes for Varnish: http://www.varnish-software.com/customers/facebook

[11] Needle in a haystack: efficient storage of billions of photos:http://www.facebook.com/note.php?note_id=76191543919

[12] Scaling the Messages Application Back End:http://www.facebook.com/note.php?note_id=10150148835363920

[13] The Underlying Technology of Messages:https://www.facebook.com/note.php?note_id=454991608919

[14] The Underlying Technology of Messages Tech Talk:http://www.facebook.com/video/video.php?v=690851516105

[15] Facebook’s typeahead search architecture:http://www.facebook.com/video/video.php?v=432864835468

[16] Facebook Chat: http://www.facebook.com/note.php?note_id=14218138919

[17] Who has the most Web Servers?:http://www.datacenterknowledge.com/archives/2009/05/14/whos-got-the-most-web-servers/

[18] Building Efficient Data Centers with the Open Compute Project:http://www.facebook.com/note.php?note_id=10150144039563920

[19] Open Compute Project: http://opencompute.org/

[20] Facebook’s architecture presentation at Devoxx 2010:http://www.devoxx.com

[21] Scaling Facebook to 500 millions users and beyond:http://www.facebook.com/note.php?note_id=409881258919

【編輯推薦】

  1. 專訪Facebook工程師:遷移5億用戶數(shù)據(jù)的挑戰(zhàn)
  2. Facebook是怎么做MySQL備份的?
  3. 揭秘:Facebook如何發(fā)布代碼
  4. 揭秘Facebook設(shè)計師是怎么工作的
  5. Facebook是如何管理代碼的
責任編輯:陳貽新 來源: coolshell.cn
相關(guān)推薦

2011-03-10 09:37:52

Facebook代碼

2011-09-01 09:07:30

程序員

2011-02-18 09:56:42

Facebook人才FaceBook

2012-06-05 09:12:02

FacebookFolly

2010-02-03 15:39:46

HipHopPHPFacebook

2012-10-16 09:57:55

Facebook數(shù)據(jù)中心開放式數(shù)據(jù)

2015-08-26 09:27:32

Facebook架構(gòu)

2009-01-04 09:26:44

架構(gòu)Google服務(wù)器

2011-07-18 10:39:34

HTML 5

2022-05-09 11:29:42

架構(gòu)數(shù)據(jù)

2024-03-04 00:00:00

系統(tǒng)架構(gòu)核心

2015-09-22 16:20:45

七牛D-Future

2016-02-24 16:18:22

2010-02-06 09:19:23

FaceBook

2022-08-08 07:03:08

推薦系統(tǒng)架構(gòu)

2009-11-09 10:57:07

ibmdw軟件架構(gòu)

2011-07-22 13:55:48

架構(gòu)

2011-12-01 14:32:13

Facebook數(shù)據(jù)中基礎(chǔ)架構(gòu)

2009-05-13 09:10:59

Facebook存儲基礎(chǔ)架構(gòu)照片應(yīng)用程序

2019-05-28 09:23:06

點贊
收藏

51CTO技術(shù)棧公眾號