日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
百萬級PHP網(wǎng)站架構(gòu)工具箱

在了解過世界最大的PHP站點(diǎn),F(xiàn)acebook的后臺技術(shù)后,今天我們來了解一個百萬級PHP站點(diǎn)的網(wǎng)站架構(gòu):Poppen.de。Poppen.de是德國的一個社交網(wǎng)站,相對Facebook、Flickr來說是一個很小的網(wǎng)站,但它有一個很好的架構(gòu),融合了很多技術(shù),如 Nigix、MySql、CouchDB、Erlang、Memcached、RabbitMQ、PHP、Graphite、Red5以及Tsung。

推薦閱讀:大型B2C網(wǎng)站高性能可伸縮架構(gòu)技術(shù)探秘

Poppen.de目前有200萬注冊用戶數(shù)、2萬并發(fā)用戶數(shù)、每天20萬條私有消息、每天25萬登錄次數(shù)。而項目團(tuán)隊有11個開發(fā)人員,兩個設(shè)計,兩個系統(tǒng)管理員。該站點(diǎn)的商業(yè)模式采用免費(fèi)增值模式,用戶可以使用搜索用戶、給好友發(fā)送消息、上載圖片和視頻等功能。

如果用戶想享受不受限制發(fā)送消息和上載圖片,那么就得根據(jù)需要支付不同類型的會員服務(wù),視頻聊天及網(wǎng)站其他服務(wù)也采用同樣的策略。

Nginx

Poppen.de 所有的服務(wù)都是基于Nginx服務(wù)上的。前端有兩臺Nginx服務(wù)器在高峰期提供每分鐘15萬次請求的負(fù)載,每個機(jī)器已經(jīng)有四年壽命,并且只有一個CPU 和3GB RAM。Poppen.de擁有三臺獨(dú)立的圖像服務(wù)器,由三臺Nginx服務(wù)器為*.bilder.poppen.de提供每分鐘8萬次請求服務(wù)。

Nginx 架構(gòu)中一個很酷的設(shè)計就是有很多請求是由Memcached處理的,因此請求從緩存中獲取內(nèi)容而不需要直接訪問PHP機(jī)器。比如,用戶信息頁(user profile)是網(wǎng)站需要密集處理的內(nèi)容,如果把用戶信息頁全部緩存到Memcached上,那么請求直接從Memcached上獲取內(nèi)容。 Poppen.de的Memcached每分鐘可以處理8000次請求。

架構(gòu)中有三個Nginx圖像服務(wù)器提供本地圖像緩存,用戶上載圖 像到一個中央文件服務(wù)器。當(dāng)向這三個Nginx之一中請求圖像時,如果服務(wù)器本地中沒有存在該圖像,則從中央文件服務(wù)器下載到該服務(wù)器上作緩存并提供服 務(wù)。這種負(fù)載均衡的分布式圖像服務(wù)器架構(gòu)設(shè)計可以減輕主要存儲設(shè)備的負(fù)載。

PHP-FPM

該網(wǎng)站運(yùn)行在PHP- FPM上。共有28臺雙CPU、6GB內(nèi)存的PHP機(jī)器,每個機(jī)器上運(yùn)行100個PHP-FPM的工作線程。使用啟用了APC的PHP5.3.x。 PHP5.3可以降低CPU和內(nèi)存使用率的30%以上。

推薦閱讀:Nginx + PHP-FPM + APC=絕妙的組合

程序代碼是基于Symfony1.2框架之上開發(fā)的。一是可以使用外部資源,二是 能夠提高項目開發(fā)進(jìn)度,同時在一個著名的框架上可以讓新開發(fā)人員更容易加入到團(tuán)隊中來。雖然沒有任何事情都是十全十美的,但可以從Symfony框架中得 到很多好處,讓團(tuán)隊可以更多的精力放在Poppen.de的業(yè)務(wù)開發(fā)上去。

網(wǎng)站性能優(yōu)化使用XHProf,這是Facebook開源出來的一個類庫。這個框架非常容易個性化和配置,能夠可以緩存大部分高代價的服務(wù)器計算。

MySQL

MySQL是網(wǎng)站主要的RDBMS。網(wǎng)站又幾個MySql服務(wù)器:一臺4CPU、32GB的服務(wù)器存儲用戶相關(guān)信息,如基本信息、照片描述信息等。這臺機(jī)器已經(jīng)使用了4 年,下一步計劃會使用共享集群來替換它。目前仍基于這個系統(tǒng)上進(jìn)行設(shè)計,以簡化數(shù)據(jù)訪問代碼。根據(jù)用戶ID進(jìn)行數(shù)據(jù)分區(qū),因為網(wǎng)站中大部分信息都是以用戶 為中心的,如照片、視頻、消息等。

推薦專題:MySQL數(shù)據(jù)庫入門與精通教程

有三臺服務(wù)器按主-從-從配置架構(gòu)提供用戶論壇服務(wù)。一臺從服務(wù)器負(fù)責(zé)網(wǎng)站自定義消息存儲,到現(xiàn)在有 2.5億條消息。另外四臺機(jī)器為主-從配置關(guān)系。另外由4臺機(jī)器配置成NDB族群專門服務(wù)于密集型寫操作數(shù)據(jù),如用戶訪問統(tǒng)計信息。

數(shù)據(jù)表設(shè)計盡量避免關(guān)聯(lián)操作,盡可能緩存最多的數(shù)據(jù)。當(dāng)然,數(shù)據(jù)庫的結(jié)構(gòu)化規(guī)范已經(jīng)完全被破壞掉了。因此,為了更容易搜索,數(shù)據(jù)庫設(shè)計創(chuàng)建了數(shù)據(jù)挖掘表。大部分表是MyISAM型表,可以提供快速查找?,F(xiàn)在的問題是越來越多的表已經(jīng)全表鎖住了。Poppen.de正考慮往XtraDB存儲引擎上遷移。

#p#

Memcached

網(wǎng)站架構(gòu)中Memcached應(yīng)用相當(dāng)多,超過45GB的高速緩存和51個節(jié)點(diǎn)。緩存了Session會話、視圖緩存以及函數(shù)執(zhí)行緩存等。架構(gòu)中有一個系統(tǒng) 當(dāng)記錄被修改時可以自動地把數(shù)據(jù)更新到緩存中去。未來改善緩存更新的可能方案是使用新的Redis Hash API或者M(jìn)ongoDB。

RabbitMQ

在 2009年中開始在架構(gòu)中使用RabbitMQ。這是一個很好的消息解決方案,便于部署和集中到這個架構(gòu)中去,在LVS后運(yùn)行了兩臺RabbitMQ服務(wù) 器。在上個月,已經(jīng)把更多的東西集成到該隊列中,意味著同一時刻有28臺PHP服務(wù)器每天要處理50萬次請求。發(fā)送日志、郵件通知、系統(tǒng)消息、圖像上載等 更多的東西到這個隊列中。

應(yīng)用PHP-FPM中的fastcgi_finish_request()函數(shù)集成隊列消息,可以把消息異步發(fā) 送到隊列中。當(dāng)系統(tǒng)需要給用戶發(fā)送HTML或JSON格式響應(yīng)時,就調(diào)用這個函數(shù),這樣用戶就沒有必要等到PHP腳本清理。

這個系統(tǒng)可以改善架構(gòu)資源管理。例如,在高峰期服務(wù)每分鐘可以處理1000次登錄請求。這表示有1000并發(fā)更新用戶表保存用戶的登錄時間。由于使用了隊列機(jī)制,可以 按相反的順序來運(yùn)行這些查詢。如果需要提高處理速度,只需要增加更多的隊列處理者即可,甚至可以增加更多的服務(wù)器到這集群中去,而不需要修改任何配置和部 署新節(jié)點(diǎn)。

CouchDB

日志存儲CouchDB運(yùn)行在一臺機(jī)器上。在這臺機(jī)器上可以根據(jù)模塊/行為進(jìn)行日志查詢 /分組,或者根據(jù)錯誤類型等等。這對定位問題非常有用。在使用日志聚合服務(wù)CouchDB之前,不得不逐臺登錄到PHP服務(wù)器上設(shè)法日志分析定位問題,這 是非常麻煩的。而現(xiàn)在把所有的日志集中到隊列中保存到CouchDB中,可以集中進(jìn)行問題檢查和分析。

Graphite

網(wǎng)站使用Graphite采集網(wǎng)站實時信息并統(tǒng)計。從請求每個模塊/行為到Memcached的命中和未命中、RabbitMQ狀態(tài)監(jiān)控以及Unix負(fù)載等等。Graphite服務(wù)平均每分鐘有4800次更新操作。實踐已經(jīng)證實要監(jiān)測網(wǎng)站發(fā)發(fā)生什么是非常有用的,它的簡單文本協(xié)議和繪圖功能可以方便地即插即 用的方式用于任何需要監(jiān)控的系統(tǒng)上。

一件很酷的事情是使用Graphite同時監(jiān)控了網(wǎng)站的兩個版本。一月份部署了Symfony框架新 版本,以前代碼作為一個備份部署。這就意味著網(wǎng)站可能會面臨性能問題。因此可以使用Graphite來對兩個版本在線進(jìn)行對比。

發(fā)現(xiàn)新版本上的Unix負(fù)載表較高,于是使用XHProf對兩個版本進(jìn)行性能分析,找出問題所在。

Red5

網(wǎng)站為用戶也提供了兩種類型的視頻服務(wù),一種是用戶自己上載的視頻,另外一種是視頻聊天,用戶視頻互動和分享。到2009年年中,每月為用戶提供17TB的流量服務(wù)。

Tsung

Tsung 是一個Erlang編寫的分布式基準(zhǔn)分析工具。在Poppen.de網(wǎng)站中主要用于HTTP基準(zhǔn)分析、MySQL與其他存儲系統(tǒng)(XtraDB)的對比分 析。用一個系統(tǒng)記錄了主要的MySQL服務(wù)器的流量,再轉(zhuǎn)換成Tsung的基準(zhǔn)會話。然后對該流量進(jìn)行回放,由Tsung產(chǎn)生數(shù)以千計的并發(fā)用戶訪問實驗 室的服務(wù)器。這樣就可以在實驗環(huán)境中與真實場景非常接近。

【編輯推薦】

  1. 大型B2C網(wǎng)站高性能可伸縮架構(gòu)技術(shù)探秘
  2. 世界最大的PHP站點(diǎn) Facebook后臺技術(shù)探秘
  3. 視頻專題:大型網(wǎng)站架構(gòu)技術(shù)專家談
  4. 大型網(wǎng)站架構(gòu)演變和知識體系
  5. 高并發(fā)高負(fù)載的大型網(wǎng)站系統(tǒng)架構(gòu)

名稱欄目:百萬級PHP網(wǎng)站架構(gòu)工具箱
網(wǎng)頁鏈接:http://m.5511xx.com/article/ccsiooe.html