分享高性能網(wǎng)站構(gòu)架的7個(gè)方面
來(lái)源:易賢網(wǎng) 閱讀:933 次 日期:2014-07-10 09:33:56
溫馨提示:易賢網(wǎng)小編為您整理了“分享高性能網(wǎng)站構(gòu)架的7個(gè)方面”,方便廣大網(wǎng)友查閱!

一、優(yōu)化網(wǎng)站響應(yīng)時(shí)間的架構(gòu)方案:

網(wǎng)站能不能留的住用戶(hù),一方面是看內(nèi)容,另一方面是看響應(yīng)時(shí)間。通常有以下幾個(gè)方式來(lái)降低網(wǎng)站響應(yīng)時(shí)間:

1、減少HTTP請(qǐng)求。包括合并css和javascript。減少圖片數(shù)量,比如利用css的偏移技術(shù)來(lái)在一個(gè)圖片中選擇不同的位置內(nèi)容。利用瀏覽器的Cache功能,我們可以在頭中聲明是否被瀏覽器緩存。

2、動(dòng)態(tài)內(nèi)容靜態(tài)化。比如永久生成HTML文件。生成靜態(tài)文件并設(shè)定生存時(shí)間,到期后查詢(xún)新的動(dòng)態(tài)內(nèi)容進(jìn)行替換。

3、優(yōu)化數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)的性能對(duì)于項(xiàng)目整體性能中是重中之重。設(shè)計(jì)良好的Mysql比亂糟糟的Mysql性能高出N個(gè)數(shù)量級(jí),更別論再引入NOSQL了,比如Redis,MongoDB。

4、使用負(fù)載均衡。將請(qǐng)求合理的分發(fā)到更多服務(wù)器。

5、使用緩存。把花費(fèi)時(shí)間和資源成本高昂的計(jì)算結(jié)果取出緩存起來(lái),避免重復(fù)計(jì)算。比如在Mysql前面擋一層Memcached。比如生成一個(gè)文件,使用的時(shí)候include進(jìn)來(lái)。再比如PHP中的OPCACHE等。

二、壓力測(cè)試的架構(gòu)方案:

吞吐率是指單位時(shí)間內(nèi)處理的請(qǐng)求數(shù),單位reqs/s。最大吞吐率是指單位時(shí)間內(nèi)能夠處理的最大請(qǐng)求出。模擬足夠多的人數(shù)和并發(fā)請(qǐng)求來(lái)測(cè)試最大吞吐率的方法叫做壓力測(cè)試。比如Apache自帶的ab(ApacheBench)。ab的參數(shù)很多,常用的有請(qǐng)求數(shù)(-n),并發(fā)用戶(hù)數(shù)(-c),超時(shí)時(shí)間(-t),長(zhǎng)連接(-k),附件一個(gè)Cookie(-cname=value)

$ab-c10-n1000http://localhost/

三、長(zhǎng)連接的架構(gòu)方案:每次請(qǐng)求都需要TCP的三次握手,握手完比表示連接正式聯(lián)通,之后再發(fā)送數(shù)據(jù)。那么,把N個(gè)請(qǐng)求,就需要3N次握手,傳遞N次數(shù)據(jù),得到N次響應(yīng),總共5N。如果把N個(gè)請(qǐng)求合成一個(gè)請(qǐng)求,就是3次握手,1次傳遞數(shù)據(jù),1次返回響應(yīng),共5次。但是,有時(shí)候我們需要上一次響應(yīng)的返回結(jié)果來(lái)發(fā)送新一輪的請(qǐng)求,在這個(gè)時(shí)候,合并請(qǐng)求并不好實(shí)現(xiàn),這就需要長(zhǎng)連接。使用起來(lái)很簡(jiǎn)單,在頭中包含如下:

Connection:Keep-Alive

客戶(hù)端和服務(wù)器端都可以設(shè)置長(zhǎng)連接的最大時(shí)間,當(dāng)兩者不統(tǒng)一時(shí)以小的一方為準(zhǔn)。開(kāi)啟長(zhǎng)連接后進(jìn)行壓力測(cè)試:

發(fā)現(xiàn)提升不止三五倍。本機(jī)是提升了8倍的性能。

四、提高M(jìn)ysql的響應(yīng)速度的架構(gòu)方案:Handlerocker是日本的一位架構(gòu)師開(kāi)發(fā)。Mysql的一種插件。Handlerocker實(shí)現(xiàn)了繞過(guò)Mysql的SQL解析層。在Mysql5.1以上版本可以使用,詳情可以查看Mysql手冊(cè)。這里就不在闡述。

五、Mysql主從復(fù)制的架構(gòu)方案:在分布式部署中,1臺(tái)主庫(kù),N臺(tái)從庫(kù)。主庫(kù)只寫(xiě),從庫(kù)只查。主庫(kù)從庫(kù)數(shù)據(jù)需要實(shí)現(xiàn)統(tǒng)一,這就是主從復(fù)制。

優(yōu)點(diǎn)是:1、從庫(kù)備份時(shí),主庫(kù)可以繼續(xù)處理更新。

2、優(yōu)化響應(yīng)時(shí)間。3、增加健壯性。主庫(kù)掛了可以切換到從庫(kù)作為備份。主從復(fù)制的實(shí)現(xiàn)過(guò)程有三步,1個(gè)在主庫(kù),2個(gè)在從庫(kù):

1、主庫(kù)服務(wù)器將用戶(hù)對(duì)數(shù)據(jù)庫(kù)更新的操作以二進(jìn)制格式保存到BinaryLog日志文件。然后BinlogDump線(xiàn)程將BinaryLog日志文件傳輸給從庫(kù)服務(wù)器。

2、從庫(kù)服務(wù)器通過(guò)一個(gè)I/O線(xiàn)程將主庫(kù)服務(wù)器的BinaryLog日志文件中的更新操作復(fù)制到一個(gè)叫做RelayLog中的中繼日志文件中。

3、從庫(kù)服務(wù)器通過(guò)另一個(gè)SQL線(xiàn)程RelayLog中繼日志文件中的操作依次在本地執(zhí)行,從而實(shí)現(xiàn)主從數(shù)據(jù)庫(kù)之間數(shù)據(jù)的同步。本篇只是簡(jiǎn)單的列出方案,詳細(xì)的配置和實(shí)現(xiàn)步驟將在另一篇中寫(xiě)到。

六、代理的架構(gòu)方案:讀取內(nèi)存的速度是讀取硬盤(pán)的100000-1000000倍。把訪(fǎng)問(wèn)過(guò)的頁(yè)面緩存在內(nèi)存中,下次直接從內(nèi)存中讀取,可以有效加速。1、傳統(tǒng)代理??蛻?hù)端發(fā)送請(qǐng)求給代理服務(wù)器,代理服務(wù)器向WEB服務(wù)器取到數(shù)據(jù)并返回給瀏覽器。代理服務(wù)器就是一個(gè)有大的存儲(chǔ)空間的Cache。2、反向代理。和傳統(tǒng)代理原理類(lèi)似,只是使用對(duì)象不同。傳統(tǒng)代理的使用對(duì)象是客戶(hù)端,反向代理的使用對(duì)象是服務(wù)器。用戶(hù)通過(guò)反向代理訪(fǎng)問(wèn)Web服務(wù)器,Web服務(wù)器是隱藏起來(lái)的。不過(guò)用戶(hù)不關(guān)心這些,權(quán)把代理服務(wù)器當(dāng)作真實(shí)的Web服務(wù)器。反向代理有Vamish。

七、異步計(jì)算的架構(gòu)方案:比較耗時(shí)的比如將用戶(hù)上傳的文件分發(fā)到多臺(tái)機(jī)器,比如裁剪圖片,視頻轉(zhuǎn)碼等??梢允褂卯惒椒桨?。讓用戶(hù)無(wú)須等待計(jì)算結(jié)束而是先行返回結(jié)果。代表產(chǎn)品有和Memcache同一家的Gearman。關(guān)于Gearman的使用可以查看PHP手冊(cè)。

更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄

更多信息請(qǐng)查看網(wǎng)站運(yùn)營(yíng)
易賢網(wǎng)手機(jī)網(wǎng)站地址:分享高性能網(wǎng)站構(gòu)架的7個(gè)方面
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話(huà):0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)