亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

揭秘Facebook背后的那些軟件

系統(tǒng) 2100 0
【轉(zhuǎn)】揭秘Facebook背后的那些軟件
2011-07-08 23:04

 對于Facebook這樣超大規(guī)模的網(wǎng)站,很多傳統(tǒng)的解決方案根本不適用。Facebook工程師們面臨的巨大挑戰(zhàn)是保證一個近5億活躍用戶的網(wǎng)站一直穩(wěn)定可靠地運行。他們是如何做到的呢,這篇文章將介紹一下他們所使用的軟件和技術(shù)。

  Facebook飛速發(fā)展面臨的挑戰(zhàn)

  在進(jìn)入討論細(xì)節(jié)之前,先看下面的一些數(shù)據(jù),也許讓你對Facebook所面臨的巨大挑戰(zhàn)有一些直觀的認(rèn)識:

Facebook每月有 5700億頁面瀏覽量 ?(據(jù)Google Ad Planner)。Facebook的照片量比其他所有圖片網(wǎng)站加起來的還要多(包括Flickr等網(wǎng)站)。每個月超過 30億張照片 被上傳。Facebook的系統(tǒng)每秒要處理 120萬張照片 。這還不包括CDN處理的照片。每月有超過 25億條內(nèi)容 ?(狀態(tài)更新,評論等)被共享。Facebook有超過 30,000臺服務(wù)器 ?(這是去年的數(shù)據(jù)!)  Facebook飛速發(fā)展所依賴的軟件

  在某些程度上說,F(xiàn)acebook仍然是LAMP的站點,但為了能容納很多其他的元素與服務(wù),F(xiàn)acebook不得不對它們進(jìn)行改進(jìn)與擴展,并修改現(xiàn)行的一些做法。

  例如:

Facebook 仍使用PHP,但為它建立了一個編譯器,將PHP代碼編譯為在Web服務(wù)器上執(zhí)行的本地代碼,從而提高性能。Facebook使用Linux,但針對自己 的需求對Linux進(jìn)行了優(yōu)化,特別是網(wǎng)絡(luò)吞吐量方面。Facebook使用MySQL,但主要是作為一個Key-value的持久性存儲系統(tǒng),而將連接 查詢和邏輯操作放在Web服務(wù)器上進(jìn)行,因為在那里更容易進(jìn)行優(yōu)化。

  另外還有自已開發(fā)的系統(tǒng),如Haystack,一個高度可擴展的對象存儲系統(tǒng),用來存儲Facebook上巨量的照片。還有Scribe,一個可以運行在Facebook這種超大規(guī)模網(wǎng)站上的日志系統(tǒng)。

  好,讓我們來看看全球最大的社交網(wǎng)站所使用的軟件吧。

  Memcached

Memcached 是 當(dāng)今互聯(lián)網(wǎng)上最著名的軟件之一。它是一個分布式的內(nèi)存緩存系統(tǒng),F(xiàn)acebook(包含其他很多網(wǎng)站)用它作為Web服務(wù)器和MySQL服務(wù)器之間的緩存 層(因為數(shù)據(jù)庫訪問相對比較慢)。多年來,F(xiàn)acebook已經(jīng)對Memcached和它的周邊軟件進(jìn)行了很多優(yōu)化,比如對network stack的優(yōu)化。

  Facebook每時每刻都有數(shù)10TB的數(shù)據(jù)緩存在數(shù)千臺Memcached服務(wù)器上。它可能是世界上最大的Memcached服務(wù)器集群了。

  HipHop for PHP

  PHP作為一種腳本語言,和本地代碼相比是運行緩慢的。 HipHop 可以將PHP轉(zhuǎn)換成C++代碼,然后再進(jìn)行編譯,這樣可以獲得更好的性能。由于Facebook嚴(yán)重依賴PHP,所以通過HipHop可以讓W(xué)eb服務(wù)器的性能得到提高。

  一個工程師小團隊在Facebook(一開始只有三人)花了18個月時間開發(fā)HipHop,現(xiàn)在已經(jīng)投入正式使用。

  Haystack



Haystack 是Facebook的高性能圖片存取系統(tǒng)(嚴(yán)格來說,是一個對象存儲系統(tǒng),因此它并不僅限于存儲照片)。它工作繁忙;要管理超過200億張上傳的照片,并且每一片照片被保存為四種不同的分辨率,因此有超過800億張照片。

  它不僅要能處理上億的照片,而且性能也是至關(guān)重要的。正如我們前面提到的,F(xiàn)acebook每秒鐘要處理約120萬張照片,而且不包括CDN上的,這是一個驚人的數(shù)字。

  BigPipe



BigPipe 是Facebook開發(fā)的的動態(tài)網(wǎng)頁處理系統(tǒng)。為了獲得最佳性能,F(xiàn)acebook用它來按分塊處理每個網(wǎng)頁(稱為“pagelets”)。

  例如,聊天窗口,新聞Feed等是通過分塊分開進(jìn)行傳輸?shù)摹_@些pagelets可以并行工作,不僅可以提高性能,而且即使其中一部分失效或中斷,也不影響用戶的正常訪問。

  Cassandra

Cassandra 是一個可以避免單點故障的分布式存儲系統(tǒng)。它是NoSQL運動的一個典范,并已開放源代碼(它甚至成為一個Apache項目)。Facebook在收件箱搜索中使用它。

  除了Facebook,其他網(wǎng)站也在使用它,例如Digg。

  Scribe

Scribe 是一個靈活的日志系統(tǒng),F(xiàn)acebook在內(nèi)部大量使用它。它能夠處理Facebook這樣超大規(guī)模的日志記錄,并且能自動處理新生成的日志記錄類別(Facebook有數(shù)百個日志類別)。

  Hadoop and Hive

Hadoop 是一個開源的map-reduce實現(xiàn),它可以輕松處理海量數(shù)據(jù)。Facebook用它來進(jìn)行數(shù)據(jù)分析(我們都知道Facebook有巨量的數(shù)據(jù))。 Hive 起 源于Facebook,它使得針對Hadoop進(jìn)行SQL查詢成為可能,從而非程序員也可以方便地使用。(注: Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的SQL查詢功能,可以將SQL語句轉(zhuǎn)換為 MapReduce任務(wù)運行。 )

  Hadoop和Hive都是開源的(Apache項目),并且被一些大的網(wǎng)站使用,例如雅虎和Twitter。

  Thrift

  Facebook在不同的服務(wù)中,使用不同的語言。PHP用于前端,Erlang用于聊天,Java和C++也用在一些地方(也許還有其他語言)。 Thrift 是一個內(nèi)部開發(fā)的跨語言框架,它把不同的語言綁定在一起,讓它們之間相互“交流”。這樣,F(xiàn)acebook就可以很方便地進(jìn)行跨語言開發(fā)。

  Facebook已將Thrift開源,支持的語言會越來越多。

  Varnish

Varnish 是一個HTTP加速器,不僅可以作為一個負(fù)載均衡器,而且可以快速地對內(nèi)容進(jìn)行緩存。

  Facebook使用Varnish來處理照片和個人資料圖片,每天要處理數(shù)十億的要求。像Facebook使用的其他軟件一樣,Varnish也是開源的。

  保證Facebook平穩(wěn)運行的其他因素

  上面我們介紹了支撐著Facebook網(wǎng)站系統(tǒng)的一些軟件。但是,處理如此龐大的系統(tǒng)是一項復(fù)雜的任務(wù),下面我們將列出保證Facebook平穩(wěn)運行的一些其他方面的東西。

  逐步發(fā)布和暗啟動

  Facebook有一個叫“Gatekeeper”的系統(tǒng),可以針對不同的用戶運行不同的代碼。它讓Facebook可以逐步地發(fā)布新功能,進(jìn)行A/B測試,只為Facebook員工激活某些特性。

   Gatekeeper也可以讓Facebook實現(xiàn)“暗啟動”,在一些功能正式投入使用之前,先激活這些功能中的某些特性(用戶不會察覺,因為UI上并 沒有體現(xiàn),所以稱之為暗啟動)。?這可以當(dāng)作現(xiàn)實世界的壓力測試,幫助在正式發(fā)布前發(fā)現(xiàn)存在的瓶頸和其他問題。暗啟動通常是在正式發(fā)動前兩個星期。

  Profiling

  Facebook會仔細(xì)監(jiān)控系統(tǒng)運行情況,有趣的是還會監(jiān)控每一個PHP函數(shù)在生產(chǎn)環(huán)境中的性能,使用的是開源工具 XHProf

  通過逐步 禁用不重要的功能來提升性能

  如果Facebook運行時出現(xiàn)性能問題,有一個方法就是逐步地禁用不太重要的功能,以增強Facebook核心功能的性能。

  沒有提及的方面

  我們沒有提及硬件方面,但這也是Facebook能達(dá)到如此規(guī)模的重要環(huán)節(jié)。例如,和其他大型網(wǎng)站一樣,F(xiàn)acebook利用CDN來處理靜態(tài)內(nèi)容。Facebook在美國西部的俄勒岡州還有一個 巨大的數(shù)據(jù)中心 ,可以隨時根據(jù)需要增加服務(wù)器。

  Facebook的開源情節(jié)

  談到Facebook,我們不能不提及Facebook是多么喜歡開源,或者可以這么說,F(xiàn)acebook是“愛”著開源的。

  Facebook不僅使用(也貢獻(xiàn)于)已有的開源軟件,比如Linux,Memcached,MySQL,Hadoop等等,而且把自己內(nèi)部開發(fā)的軟件開源。比如:HipHop, Cassandra, Thrift 和 Scribe。

  Facebook還開源了由FriendFeed團隊開發(fā)的高性能Web服務(wù)器框架Tornado(FriendFeed 2009年8月被Facebook收購)。

  Facebook所用到的開源軟件清單,可以在http://facebook.com/opensource找到。

  飛速發(fā)展帶來 的更多挑戰(zhàn)

  Facebook以令人難以置信的速度在發(fā)展,它的用戶數(shù)的增長幾乎是指數(shù)級的,現(xiàn)在已經(jīng)接近5億活躍用戶,誰也不知道年底這個數(shù)字會達(dá)到多少,看起來每6個月就增加1億的用戶。

  Facebook甚至有一個專門的“growth team”,該小組不斷地研究如何讓人們更多地使用并融入Facebook。

  如此快速的發(fā)展,比如頁面瀏覽、圖片上傳,狀態(tài)信息等用戶與網(wǎng)站之間以及用戶與用戶之間的各種交互內(nèi)容的增長,將會產(chǎn)生各種各樣的性能瓶頸,帶來各種各樣的挑戰(zhàn)。

  這是Facebook要面對的現(xiàn)實。Facebook工程師們必須不停地嘗試并找到新方法來解決網(wǎng)站飛速發(fā)展中遇到的各種問題,比如Facebook的照片存儲系統(tǒng)已經(jīng)被完全重寫了好幾次。

  我們就等著看facebook工程師們還會帶來啥好東東吧,相信一定會很有趣。畢竟,他們在攀登一座我們大多數(shù)人只能在夢中見到的大山,建設(shè)一個用戶比大部分國家人口都多的網(wǎng)站。要干這樣的事情,你總得有點創(chuàng)造力。(注:最后一段很難翻譯,感謝半含朝雨的翻譯支持)

  英文原文: Exploring the software behind Facebook, the world’s largest site

  翻譯: 博客園

  部分翻譯文字參考自: http://blog.jobbole.com/entr.php/73

?

轉(zhuǎn)自: http://news.cnblogs.com/n/68453/

揭秘Facebook背后的那些軟件


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久久国产视频 | 亚洲美女在线播放 | 欧美日本一本线在线观看 | 天天干天天操天天爽 | 国内精品伊人久久久影院 | 97在线免费看视频 | 久久r8这里只精品99re66 | 欧美理论片大全在线观看 | 午夜 福利| 国产成人免费在线观看 | 成人a一级毛片免费看 | 亚洲综合区小说区激情区噜噜 | 一级毛片大全免费播放 | 亚洲情综合五月天 | 91精品全国免费观看青青 | 亚洲综合伊人 | 欧美十区 | 国产一级淫| 日本视频播放免费线上观看 | 2021国产精品久久久久 | 青青青青久久国产片免费精品 | 日日夜夜亚洲 | a级片网址 | 国产成人精品视频一区 | 嘿嘿嘿视频免费网站在线观看 | 精品日韩在线观看 | 四虎视频在线 | 日日摸夜夜欧美一区二区 | 中文字幕在亚洲第一在线 | 神马我不卡在线观看 | 久视频免费精品6 | 国产成人精品午夜免费 | 日韩黄色精品 | 中文字幕不卡在线播放 | 国产做爰免费视频观看 | 亚洲图片综合网 | 久久久91精品国产一区二区三区 | 久久蝌蚪 | 四虎影院永久在线 | 精品久久视频 | 毛片免费的 |