免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

揭秘全球最大網(wǎng)站Facebook背后的那些軟件

 zhbing 2011-02-26
以Facebook現(xiàn)在的經(jīng)營(yíng)規(guī)模,諸多傳統(tǒng)服務(wù)器的技術(shù)均將崩潰或根本無法支撐。那么面對(duì)5億的活躍用戶,F(xiàn)acebook的工程師們又將如何讓網(wǎng)站平穩(wěn)運(yùn)轉(zhuǎn)呢?伯樂在線 - 職場(chǎng)博客的這篇文章將展示Facebook的工程師完成這個(gè)艱巨任務(wù)所用到的一系列軟件。


Facebook級(jí)別規(guī)模的挑戰(zhàn)

在我們深入細(xì)節(jié)之前,先了解一組Facebook不得不面對(duì)數(shù)據(jù),你就可以想象這種規(guī)模。

  • Facebook每月的PV量:630,000,000,000 (6千3百億)
  • Facebook上的圖片數(shù)量超過其他圖片網(wǎng)站的總和(包括諸如Flickr這樣的圖片網(wǎng)站)
  • 每個(gè)月有超過30億的圖片上傳到Facebook
  • Facebook系統(tǒng)每秒可以處理120萬張圖片。這還不包括Facebook的CDN處理的圖片。
  • 每月處理超過250億的信息內(nèi)容(包括用戶狀態(tài)更新,評(píng)論等)
  • Facebook的服務(wù)器數(shù)量超過3萬臺(tái)(此數(shù)據(jù)為2009年的數(shù)據(jù))


Facebook所用的軟件

從某些方面來說,F(xiàn)acebook還是屬于LAMP類型網(wǎng)站,但是,為了配合其他大量的組件和服務(wù),F(xiàn)acebook對(duì)已有的方法,已經(jīng)做了必要的改變、拓展和修改。

比如:
  • Facebook依然使用PHP,但Facebook已重建新的編譯器,以滿足在其Web服務(wù)器上加載本地代碼,從而提升性能;
  • Facebook使用Linux系統(tǒng),但為了自身目的,也已做了必要的優(yōu)化。(尤其是在網(wǎng)絡(luò)吞吐量方面);
  • Facebook使用MySQL,但也對(duì)其做優(yōu)化。

還有定制的系統(tǒng),比如, Haystack -- 高度可擴(kuò)展的對(duì)象存儲(chǔ),用來處理Facebook的龐大的圖片;Scribe -- Facebook的日志系統(tǒng)。

下面展現(xiàn)給大家的是,全球最大的社交網(wǎng)站Facebook所使用到的軟件。

Memcached Memcached

Memcached是一款相當(dāng)有名的軟件。它是分布式內(nèi)存緩存系統(tǒng)。Facebook(還有大量的網(wǎng)站)用它作為Web服務(wù)器和MySQL服務(wù)器之間的緩存層。經(jīng)過多年,F(xiàn)acebook已在Memcached和其相關(guān)軟件(比如,網(wǎng)絡(luò)棧)上做了大量?jī)?yōu)化工作。

Facebook運(yùn)行著成千上萬的Memcached服務(wù)器,借以及時(shí)處理TB級(jí)的緩存數(shù)據(jù)。可以這樣說,F(xiàn)acebook擁有全球最大的Memcached設(shè)備。

HipHop for PHP HipHop for php

和運(yùn)行在本地服務(wù)器上代碼相比,PHP的運(yùn)行速度相對(duì)較慢。HipHop把PHP代碼轉(zhuǎn)換成C++代碼,提高編譯時(shí)的性能。因?yàn)镕acebook很依賴PHP來處理信息,有了HipHop,F(xiàn)acebook在Web服務(wù)器方面更是如虎添翼。

HipHop誕生過程:在Facebook,一小組工程師(最初是3位)用了18個(gè)月研發(fā)而成。

Haystack Haystack

Haystack是Facebook高性能的圖片存儲(chǔ)/檢索系統(tǒng)。(嚴(yán)格來說,Haystack是一對(duì)象存儲(chǔ),所以它不一定要存儲(chǔ)圖 片。)Haystack的工作量超大。Facebook上有超過2百億張圖片,每張圖片以四種不同分辨率保存,所以,F(xiàn)acebook有超過8百億張圖 片。

Haystack的作用不單是處理大量的圖片,它的性能才是亮點(diǎn)。我們?cè)谇懊嬉烟岬?,F(xiàn)acebook每秒大概處理120萬張圖片,這個(gè)數(shù)據(jù)并不包括其CDN處理的圖片數(shù)。這可是個(gè)驚人的數(shù)據(jù)?。。?br>
BigPipe bigpipe

BigPipe是Facebook開發(fā)的動(dòng)態(tài)網(wǎng)頁(yè)處理系統(tǒng)。為了達(dá)到最優(yōu),F(xiàn)acebook用它來處理每個(gè)網(wǎng)頁(yè)的分塊(也稱“Pagelets”)。

比如,聊天窗口是獨(dú)立檢索的,新聞源也是獨(dú)立檢索的。這些Pagelets是可以并發(fā)檢索,性能也隨之提高。如此,即使網(wǎng)站的某部分停用或崩潰后,用戶依然可以使用。

Cassandra Cassandra

Cassandra是一個(gè)沒有單點(diǎn)故障的分布式存儲(chǔ)系統(tǒng)。它是前NoSQL運(yùn)動(dòng)的成員之一,現(xiàn)已開源(已加入Apache工程)。Facebook用它來做郵箱搜索。

除了Facebook之外,Cassandra也適用于很多其他服務(wù),比如Digg。

Scribe Scribe

Scribe是個(gè)靈活多變的日志系統(tǒng),F(xiàn)acebook把它用于多種內(nèi)部用途。Scribe用途:處理Facebook級(jí)別日志,一旦有新的日志分類生成,Scribe將自動(dòng)處理。(Facebook有上百個(gè)日志分類)。

Hadoop and HiveHadoop

Hadoop是款開源Map/Reduce框架,它可以輕松處理海量數(shù)據(jù)。Facebook用它來做數(shù)據(jù)分析。(前面就說到了,F(xiàn)acebook的數(shù)據(jù)量 是超海量的。)Hive起源于Facebook,Hive可以使用SQL查詢,讓非程序員比較容易使用Hadoop。(注1: Hive是是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供完整的sql查詢功能,可以將sql語(yǔ)句轉(zhuǎn)換為 MapReduce任務(wù)進(jìn)行運(yùn)行。 )

Thrift

Facebook在其不同的服務(wù)中,使用了不同的語(yǔ)言。比如: PHP用在前端,Erlang用于聊天系統(tǒng),Java和C++用于其它地方,等等。Thrift是內(nèi)部開發(fā)的跨語(yǔ)言的框架,把不同的語(yǔ)言綁定在一起,使之 可以相互“交流”。這就讓Facebook的跨語(yǔ)言開發(fā),變得比較輕松。

Facebook已把Thrift開源,Thrift支持的語(yǔ)言種類將更多。

Varnish Varnish

Varnish是一個(gè)HTTP加速器,擔(dān)當(dāng)負(fù)載均衡角色,同時(shí)也用于快速處理緩存內(nèi)容。

Facebook用Varnish處理圖片和用戶照片,每天都要處理十億級(jí)的請(qǐng)求。和Facebook其他的應(yīng)用應(yīng)用一樣,Varnish也是開源的。

Facebook可以平穩(wěn)運(yùn)行,還得利于其他方面

雖然上面已經(jīng)提到了一些構(gòu)成Facebook系統(tǒng)的軟件,但是處理如此龐大的系統(tǒng),本身就是一項(xiàng)復(fù)雜的任務(wù)。所以,下面還將列出使Facebook能平穩(wěn)運(yùn)行的一些東西。

逐步發(fā)布&暗啟動(dòng)

Facebook有一個(gè)系統(tǒng),他們稱之為“門衛(wèi)”。該系統(tǒng)可以針對(duì)不同種類的用戶運(yùn)行不同的代碼。(它簡(jiǎn)單介紹了代碼庫(kù)中的不同條件。)該系統(tǒng)讓Facebook逐步發(fā)布新特性、A/B測(cè)試、激活僅針對(duì)Facebook員工的特性 等等。

門衛(wèi)系統(tǒng)也讓Facebook做些“暗啟動(dòng)”的事情。比如,在某一特性上線之前,可以激活該特性背后的元件。另外,它還可以做模擬壓力測(cè)試,發(fā)現(xiàn)瓶頸和潛在的問題。默默啟動(dòng)一般都是在正式啟動(dòng)之前的2周完成。

實(shí)時(shí)系統(tǒng)的簡(jiǎn)介

Facebook會(huì)仔細(xì)監(jiān)控自身系統(tǒng),有趣的是,它還監(jiān)控每個(gè)PHP函數(shù)在實(shí)時(shí)生產(chǎn)環(huán)境下的性能。這一實(shí)時(shí)PHP環(huán)境監(jiān)控是通過一個(gè)叫XHProf的開源工具完成的。

逐步禁用某些特性,借以提高性能

如果Facebook遇到性能問題,F(xiàn)acebook有大量的途徑來逐步禁用不很重要的特性,以提高其核心特性性能。

尚未提到的東西

雖然這里無法過多深入硬件方面,但硬件絕對(duì)是Facebook能達(dá)到空前規(guī)模的重要因素。比如,和其他大型網(wǎng)站一樣,F(xiàn)acebook也用CDN來處理靜態(tài)內(nèi)容。Facebook還在美國(guó)西部的俄勒岡州建有一超大的數(shù)據(jù)中心,可以隨時(shí)增加服務(wù)器。

當(dāng)然了,除了前面已經(jīng)提到的,還有其他大量的軟件沒有說到。但是,希望能突出其中非常有特色的。

Facebook和開源之間的“戀情”

Facebook和開源之間聯(lián)系,此文不能不提,雖不能說Facebook是多么地鐘愛開源,但至少可以這樣說,F(xiàn)acebook是“愛”著開源的。

Facebook不僅使用(也捐贈(zèng))開源軟件,比如,Linux、Memcached、MySQL、Hadoop等等,它還內(nèi)部開發(fā)不少軟件,并且也將之開源。

Facebook開發(fā)的開源工程,包括HipHop、Cassandra、Thrift和Scribe。另外,F(xiàn)acebook也把Tornado開源 了。Tornado是一個(gè)高性能的Web服務(wù)器框架,由FriendFeed幕后團(tuán)隊(duì)開發(fā)而成。(2009年8月,F(xiàn)acebook收購(gòu) FriendFeed。)

(Facebook所用到的開源軟件,可以在Facebook的開源頁(yè)面找到。)

面臨更多的大規(guī)模挑戰(zhàn)

Facebook以一種令人難以置信的速度成長(zhǎng)。它的用戶群幾乎是成倍增加,活躍用戶數(shù)量現(xiàn)已接近5億。而且,誰都無法預(yù)測(cè)今年底,活躍用戶量會(huì)到多少。

Facebook甚至成立了一個(gè)專門的“成長(zhǎng)小組”,該小組不斷思考如何讓人們使用facebook并融入到facebook中。

這一快速成長(zhǎng),意味著Facebook將遇到不同的性能瓶頸。Facebook會(huì)面臨來這如下方面的挑戰(zhàn):PV、搜索、上傳的圖片和狀態(tài)消息,用戶之間的交互和用戶和Facebook之間的交互帶來的挑戰(zhàn)。

這也是Facebook面對(duì)的事實(shí)。Facebook的工程師們將繼續(xù)尋求新方法來擴(kuò)展(這不只是增加服務(wù)器的問題了)。比如,隨著網(wǎng)站成長(zhǎng),其圖片存儲(chǔ)系統(tǒng)已經(jīng)多次完全重寫。

所以,我們將看到Facebook的工程師們奔向下一個(gè)“山頭”。我們相信他們不會(huì)辜負(fù)眾望。畢竟,他們正跨越山頭,那個(gè)我們大多數(shù)人僅能向往的山頭;他們正擴(kuò)展網(wǎng)站,那個(gè)用戶來自全球各地的網(wǎng)站。當(dāng)你實(shí)現(xiàn)那個(gè)里程碑時(shí),你將彪炳史冊(cè)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多