欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

設(shè)計高可用和高負(fù)載的網(wǎng)站系統(tǒng)的幾個注意事項

 更新時間:2011年06月08日 01:30:01   作者:  
隨著網(wǎng)站的運營,用戶訪問量和數(shù)據(jù)存儲量會隨著時間發(fā)生幾何級變化,很快整個系統(tǒng)不堪重負(fù),頻繁出現(xiàn)問題。
其實要設(shè)計一個高可用、高負(fù)載的系統(tǒng)還是有一定的規(guī)矩可循的,其手段無外乎向上擴(kuò)展(Sacle Up 硬件擴(kuò)展)或者向外擴(kuò)展(Scale Out 軟件擴(kuò)展),這兩種方案在某一階段時期,會顯著改善網(wǎng)站的性能,但不久之后,問題依舊。本文參考網(wǎng)上相關(guān)資料,試圖提供一個可行的 "有限" 解決方案。

早期

1. 對業(yè)務(wù)應(yīng)用進(jìn)行垂直分割,將不同的業(yè)務(wù)邊界劃分出來。程序員常說的 "多層體系" 只是縱向解決了不同編程層次的劃分,相對于業(yè)務(wù)而言,并沒有做出什么處理?,F(xiàn)在 SOA 大行其道,除了人們認(rèn)識到面向服務(wù)帶來的互聯(lián)、擴(kuò)展性以外,它也將不同服務(wù)的變化區(qū)分開來,各自擁有獨立的實現(xiàn)和存儲機(jī)制。每個服務(wù)使用不同的數(shù)據(jù)庫或數(shù)據(jù)表,從一定程度上減輕了以往單個數(shù)據(jù)庫頻繁造成的 "鎖" 和 I/O 瓶頸問題。

2. 將網(wǎng)站系統(tǒng)中的動態(tài)內(nèi)容和靜態(tài)資源分離出來,使用單獨的更加高效的服務(wù)器(諸如 Apache + Linux)提供靜態(tài)信息。多數(shù)情況下,流量的極大部分來源于圖片、視頻等,用多臺服務(wù)器同時提供頁面顯示除了可以提高頁面響應(yīng)和現(xiàn)實速度外,同時他將流量分解到多臺服務(wù)器上。另外,我們應(yīng)該避免使用動態(tài)解析 (ASPNET_ISAPI.dll / HttpModule / HttpHandler) 來處理靜態(tài)數(shù)據(jù)的過濾和路徑重寫。

3. 使用緩存機(jī)制,包括使用諸如 ASP.NET Cache、PageCache、創(chuàng)建靜態(tài)頁面等手段。設(shè)計良好的緩存機(jī)制能極大提高系統(tǒng)性能和響應(yīng)速度。

4. 使用 64 位數(shù)據(jù)庫系統(tǒng)。SQL Server 2005 在 64 位系統(tǒng)上可以使用更多的內(nèi)存(最高64GB),而且在多 CPU 下也擁有更好的性能。有了更大的內(nèi)存,我們甚至可以將某些常用且極少變化的表(比如分類目錄表等)設(shè)置為內(nèi)存表以提高響應(yīng)速度。

5. 關(guān)閉操作系統(tǒng)的某些安全設(shè)置,比如 Windows 2003 預(yù)防 DDOS 攻擊的一些設(shè)置,也可以避免一些意外的訪問瓶頸。

運行期

6. 建立多數(shù)據(jù)庫體系。使用單個或多個用于數(shù)據(jù)更新的數(shù)據(jù)庫服務(wù)器,然后利用數(shù)據(jù)庫的復(fù)制和訂閱功能同步到其他多臺專門用于顯示的數(shù)據(jù)庫服務(wù)器上,這樣可以有效減少因為更新帶來的數(shù)據(jù)庫訪問等待。當(dāng)然,這種體系并不適用所有的業(yè)務(wù)。

7. 對大數(shù)據(jù)表進(jìn)行分區(qū)。現(xiàn)在的主流數(shù)據(jù)庫基本都支持?jǐn)?shù)據(jù)表分區(qū)功能,我們可以橫向分區(qū),將不同時期的數(shù)據(jù)存放到多個分區(qū)表中;也可以縱向分區(qū),將不常用的字段放到其他分區(qū)表中。分區(qū)表并不會影響到我們的開發(fā)模式,無須對代碼進(jìn)行調(diào)整,但數(shù)據(jù)表尺寸從 TB 減小到 GB 所帶來的好處是無法忽略的。

8. 使用負(fù)載均衡等手段提升性能。包括DNS負(fù)載均衡、代理服務(wù)器負(fù)載均衡、地址轉(zhuǎn)換網(wǎng)關(guān)負(fù)載均衡、協(xié)議內(nèi)部支持負(fù)載均衡、NAT負(fù)載均衡、反向代理負(fù)載均衡等,負(fù)載均衡作為最常用的上擴(kuò)手段,其效果也非常明顯。

9. 使用 SAN 等專用的存儲系統(tǒng)來提高 I/O 性能。SAN 使用光纖通道連接多個存儲設(shè)備,可以改善多個服務(wù)器硬盤之間使用網(wǎng)線傳輸數(shù)據(jù)的性能問題。此外,SAN 還可以動態(tài)調(diào)整存儲容量,更加有利于系統(tǒng)備份和恢復(fù)。

10. 電力備份。如果是自主機(jī)房,除了配置 UPS 電源外,最好擁有獨立的發(fā)電設(shè)備。當(dāng)然,對中小型網(wǎng)站而言,這過于奢侈了些。

相關(guān)文章

  • git中reset和revert區(qū)別小結(jié)

    git中reset和revert區(qū)別小結(jié)

    本文主要介紹了git中reset和revert區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 大規(guī)格文件的上傳優(yōu)化思路詳解

    大規(guī)格文件的上傳優(yōu)化思路詳解

    這篇文章主要介紹了大規(guī)格文件的上傳優(yōu)化,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Win10環(huán)境下?編譯?和?運行?x264的詳細(xì)過程

    Win10環(huán)境下?編譯?和?運行?x264的詳細(xì)過程

    這篇文章主要介紹了Win10環(huán)境下編譯和運行x264的詳細(xì)過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • phpMyAdmin“無法載入 mysql 擴(kuò)展, 請檢查 PHP 配置”問題的解決方案

    phpMyAdmin“無法載入 mysql 擴(kuò)展, 請檢查 PHP 配置”問題的解決方案

    安裝XAMPP后,phpMyAdmin無法進(jìn)入,一直提示“無法載入 mysql 擴(kuò)展, 請檢查 PHP 配置”。網(wǎng)上查,需要修改php.ini,卻發(fā)現(xiàn)本來就是正確的;
    2009-02-02
  • http 200、301、304等狀態(tài)碼詳解

    http 200、301、304等狀態(tài)碼詳解

    在利用httpwatch進(jìn)行抓包分析時,我們經(jīng)常會看到200、301、304這幾個狀態(tài)碼。具本三者是什么意思呢?這里腳本之家小編就為大家介紹一下
    2017-07-07
  • 十分鐘內(nèi)學(xué)會 避免用戶刷新導(dǎo)致重復(fù)POST提交

    十分鐘內(nèi)學(xué)會 避免用戶刷新導(dǎo)致重復(fù)POST提交

    在Web應(yīng)用中,采用POST提交信息是非常常見的,然而如果目標(biāo)頁面打開得太慢,用戶就可能會刷新頁面,這時候之前已經(jīng)提交過的信息就會被重復(fù)提交。
    2009-08-08
  • 解決啟動Azkaban報錯問題:java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.toImmutableMap

    解決啟動Azkaban報錯問題:java.lang.NoSuchMethodError: com.google.comm

    這篇文章主要介紹了啟動Azkaban報錯:java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.toImmutableMap,需要的朋友可以參考下
    2020-05-05
  • git pull每次都要輸入用戶名和密碼的解決辦法

    git pull每次都要輸入用戶名和密碼的解決辦法

    本文主要介紹了git pull每次都要輸入用戶名和密碼的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Git的代碼合入流程詳解

    Git的代碼合入流程詳解

    這篇文章主要為大家介紹了Git的代碼合入流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 編程之顯示/隱式聲明

    編程之顯示/隱式聲明

    顯示聲明 是程序中的一條說明語句,它列出一批變量名并指明這些變量的類型。隱式聲明 指通過某種默認(rèn)協(xié)定的方法將變量名與類型綁定。
    2011-01-01

最新評論