天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

淺談Facebook的服務器架構

  大體層次劃分

  Facebook的架構可以從不同角度來換分層次。

  一種是:

  一邊是php整的經典的LAMP stack;另外一邊是非php整的各種service。

 

  Facebook的頁面從剛創立的時候扎克伯格寫的,到現在,都用php開發。后端有用各種語言開發的service。它們之間用跨語言的thrift RPC通信(Scribe也是建立在Thrift之上)。

  另外一個角度劃分的層次是:

  前面是負載局衡器(沒說是用硬件的還是軟件的);負責分配前端的Web服務器,Web服務器是用php來聚合數據;最后面是 Services,Memcached和數據庫。

  有意思的是對后面三種的定性:

  Services – 快速,復雜; 自己開發的業務進程,來實現復雜的業務邏輯,速度快。

  Memchached – 快速,簡單;Memchached做簡單的key-value緩存,服務應用快速的讀請求。

  數據庫– 緩慢,持久。數據庫做持久存儲,磁盤IO自然慢,不過有memcached做緩存沒關系。

  NewsFeed的架構

  寫:

  Bob更新狀態,Web服務器上的php程序除了將內容寫到MySQL數據庫之外,也將該行為動態的ID通過Scribe發到一個Leaf Server上(根據Bob的用戶ID選的Leaf Server)。

  讀:

  另一個人Alice打開Facebook,加載主頁,php程序向Aggregator服務器查詢(Thrift調用),Aggregator從若干個Leaf Server里頭讀出Alice的朋友的所有行為動態/action的前四十個,aggregator做聚合和一定的排序,返回給php程序。

  php程序獲得這些行為動態的ID之后,從Memcached中讀出這些ID對應的內容,如Memcached沒有,則從MySQL數據庫中讀,匯聚后生成HTML返回給瀏覽器。

  Chat的架構

  頁面請求,仍由WEB服務器處理(php)處理,當然也依賴web tier之后的各種Service。比如查看消息歷史啊,在線用戶列表啊,發送聊天消息啊。

  接收聊天消息,則沒通過php服務器,而是專用的用Erlang寫的Channel服務器來處理,通過long-polling來接收聊天消息。Channel服務器是Chat服務的核心部件。發送的消息通過web tier發到Channel服務器

  后方有用C++寫的chatlogger服務器來做歷史記錄的讀寫。

  同樣也用C++寫了presence服務器來從channel服務器匯集在線狀態。

  系統的簡化結構如下圖所示:

  Web tier, chatlogger, presence, channel 都是多個服務器組成的集群。

  Channel服務器有根據User ID做分區,每個分區由一個高可用的Channel集群服務。

  Webtier, chatlogger, presence,在公開的文章和PPT中并沒說這些集群具體怎么做分布和冗余備份的。

  互聯網上的資料:

  http://www.infoq.com/presentations/Scale-at-Facebook

  Facebook前工程總監Aditya Agarwal在QCon London2010 上的演講。

  http://www.infoq.com/presentations/Facebook-Software-Stack

  Aditya Agarwal在 QCon SanFrancisco 2008上的演講,和QCon London 2010 上的沒什么區別...

  http://www.infoq.com/presentations/Evolution-of-Code-Design-at-Facebook

  Facebook工程師Nick Schrock在QCon London2011上介紹它們是怎么寫代碼的。

  http://www.infoq.com/presentations/Infrastructure-at-Facebook

  Facebook的基礎平臺(Infrastructure)團隊經理Jason Sobel在QCon San Francisco 2010上的演講。

  http://www.youtube.com/watch?v=T-Xr_PJdNmQ&feature=player_embedded

  Velocity 2010: Tom Cook, "A Day in theLife of Facebook Operations"

  http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf

  http://www.facebook.com/note.php?note_id=14218138919

it知識庫淺談Facebook的服務器架構,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 色色色五的天 | 亚洲日韩精品AV中文字幕 | 国产三级多多影院 | 67194成网页发布在线观看 | 无码专区久久综合久综合字幕 | 欧美乱妇日本无乱码特黄大片 | 亚洲午夜精品一区二区公牛电影院 | 中文字幕视频免费在线观看 | 啪啪激情婷婷久久婷婷色五月 | 亚洲精品成人久久久影院 | 孕妇bbwbbwbbwbbw超清 | 欧美日韩国产码在线 | 岛国精品在线观看 | 花蝴蝶在线观看免费中文版高清 | 日本理论片午午伦夜理片2021 | 久久99精国产一区二区三区四区 | 亚洲爆乳无码精品AAA片蜜桃 | 国产亚洲精品福利视频 | 污污内射在线观看一区二区少妇 | 日本性xxx| 亚洲色t图 | 国内久久久久影院精品 | 婷婷射精AV这里只有精品 | 精品极品三大极久久久久 | 国产精品JIZZ在线观看A片 | 色噜噜色啪在线视频 | 成人欧美一区二区三区白人 | 色欲狠狠躁天天躁无码中文字幕 | 老头扒开粉缝亲我下面 | 蜜臀AV熟女人妻中文字幕 | 曰本老头同性xxxxx | 久久国产影院 | 亚洲国产夜色在线观看 | 无码专区无码专区视频网网址 | 国产看午夜精品理论片 | 亚洲三级大片 | 2021自产拍在线观看视频 | 国产精品人妻在线观看 | 四房播播最新地址 | 久久亚洲精品AV成人无码 | 久久亚洲精品成人综合 |