• <li id="0bn34"><legend id="0bn34"><th id="0bn34"></th></legend></li>

      <label id="0bn34"><mark id="0bn34"><strong id="0bn34"></strong></mark></label>
      <span id="0bn34"><optgroup id="0bn34"></optgroup></span> <label id="0bn34"><mark id="0bn34"><strong id="0bn34"></strong></mark></label>

      <rt id="0bn34"></rt>
      <span id="0bn34"><optgroup id="0bn34"><center id="0bn34"></center></optgroup></span>
      <li id="0bn34"><big id="0bn34"><listing id="0bn34"></listing></big></li>
      分享高性能網站構架的7個方面
      • 更新時間:2025-05-15 07:14:00
      • 開發經驗
      • 發布時間:3年前
      • 471

      一、優化網站響應時間的架構方案:

      網站能不能留的住用戶,一方面是看內容,另一方面是看響應時間。通常有以下幾個方式來降低網站響應時間:


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


      2、動態內容靜態化。比如永久生成HTML文件。生成靜態文件并設定生存時間,到期后查詢新的動態內容進行替換。


      3、優化數據庫。數據庫的性能對于項目整體性能中是重中之重。設計良好的Mysql比亂糟糟的Mysql性能高出N個數量級,更別論再引入NOSQL了,比如Redis,

      MongoDB。

      4、使用負載均衡。將請求合理的分發到更多服務器。


      5、使用緩存。把花費時間和資源成本高昂的計算結果取出緩存起來,避免重復計算。比如在Mysql前面擋一層Memcached。比如生成一個文件,使用的時候include進來。再比如PHP中的OPCACHE等。


      二、壓力測試的架構方案:

      吞吐率是指單位時間內處理的請求數,單位reqs/s。最大吞吐率是指單位時間內能夠處理的最大請求出。模擬足夠多的人數和并發請求來測試最大吞吐率的方法叫做壓力測試。比如Apache自帶的ab(Apache Bench)。ab的參數很多,常用的有請求數(-n),并發用戶數(-c),超時時間(-t),長連接(-k),附件一個Cookie(-c name=value)

      $ab -c 10 -n 1000 http://localhost/


      三、長連接的架構方案 : 每次請求都需要TCP的三次握手,握手完比表示連接正式聯通,之后再發送數據。那么,把N個請求,就需要3N次握手,傳遞N次數據,得到N次響應,總共5N。如果把N個請求合成一個請求,就是3次握手,1次傳遞數據,1次返回響應,共5次。但是,有時候我們需要上一次響應的返回結果來發送新一輪的請求,在這個時候,合并請求并不好實現,這就需要長連接。使用起來很簡單,在頭中包含如下:


      Connection: Keep-Alive

      客戶端和服務器端都可以設置長連接的最大時間,當兩者不統一時以小的一方為準。開啟長連接后進行壓力測試:


      發現提升不止三五倍。本機是提升了8倍的性能。


      四、提高Mysql的響應速度的架構方案

      ?Handlerocker是日本的一位架構師開發。Mysql的一種插件。Handlerocker實現了繞過Mysql的SQL解析層。在Mysql5.1以上版本可以使用,詳情可以查看Mysql手冊。這里就不在闡述。


      五、Mysql主從復制的架構方案 : 在分布式部署中,1臺主庫,N臺從庫。主庫只寫,從庫只查。主庫從庫數據需要實現統一,這就是主從復制。


      優點是: 1、從庫備份時,主庫可以繼續處理更新。


      2、優化響應時間。 3、增加健壯性。主庫掛了可以切換到從庫作為備份。 主從復制的實現過程有三步,1個在主庫,2個在從庫:


      1、主庫服務器將用戶對數據庫更新的操作以二進制格式保存到Binary Log日志文件。然后Binlog Dump線程將Binary Log日志文件傳輸給從庫服務器。


      2、從庫服務器通過一個I/O線程將主庫服務器的Binary Log日志文件中的更新操作復制到一個叫做Relay Log中的中繼日志文件中。


      3、從庫服務器通過另一個SQL線程Relay Log中繼日志文件中的操作依次在本地執行,從而實現主從數據庫之間數據的同步。 本篇只是簡單的列出方案,詳細的配置和實現步驟將在另一篇中寫到。


      六、代理的架構方案 : 讀取內存的速度是讀取硬盤的100000-1000000倍。把訪問過的頁面緩存在內存中,下次直接從內存中讀取,可以有效加速。 1、傳統代理。客戶端發送請求給代理服務器,代理服務器向WEB服務器取到數據并返回給瀏覽器。代理服務器就是一個有大的存儲空間的Cache。 2、反向代理。和傳統代理原理類似,只是使用對象不同。傳統代理的使用對象是客戶端,反向代理的使用對象是服務器。用戶通過反向代理訪問Web服務器,Web服務器是隱藏起來的。不過用戶不關心這些,權把代理服務器當作真實的Web服務器。反向代理有Vamish。


      七、異步計算的架構方案 : 比較耗時的比如將用戶上傳的文件分發到多臺機器,比如裁剪圖片,視頻轉碼等。可以使用異步方案。讓用戶無須等待計算結束而是先行返回結果。代表產品有和Memcache同一家的Gearman。關于Gearman的使用可以查看PHP手冊。

      我們專注高端建站,小程序開發、軟件系統定制開發、BUG修復、物聯網開發、各類API接口對接開發等。十余年開發經驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!

      本文章出于推來客官網,轉載請表明原文地址:https://www.tlkjt.com/experience/7267.html
      推薦文章

      在線客服

      掃碼聯系客服

      3985758

      回到頂部

      国产91久久久久久久免费| 天天躁日日躁狠狠躁av中文| 亚洲中文无码a∨在线观看| 精品综合久久久久久99| 奇米在线777| www日本xxx| 妞干网免费视频观看| 久久久久久曰本av免费免费| 日韩电影免费在线观看网站| 亚洲欧美丝袜制服在线 | 国产小呦泬泬99精品| 91亚洲精品自在在线观看| 在人间免费观看未删减| 一区二区三区中文字幕| 女生张开腿给男生捅| 中国武警gaysexchina武警gay| 成人观看天堂在线影片| 亚洲国产成人va在线观看| 欧美成人在线免费| 亚洲综合无码一区二区| 污污的视频在线免费观看| 免费无码一区二区三区| 福利视频第一区| 四虎成人精品在永久免费| 自慰被室友看见强行嗯啊男男| 国产成人一区二区三区| 韩国黄色片在线观看| 国产欧美另类久久精品91| 黑白禁区在线观看免费版| 国产福利一区二区精品秒拍| 1000部拍拍拍18勿入免费视频软件| 国产精品亚洲一区二区三区在线| 91青青草视频| 国产精品天堂avav在线| 91一区二区视频| 国产猛男猛女超爽免费视频| 黑人玩弄漂亮少妇高潮大叫 | 亚洲国产综合精品中文字幕| 欢愉电影完整版免费观看中字| 亚洲区小说区图片区qvod| 日韩美女视频一区|