如何應對網站大規模併發訪問

1 有保障的硬件設備 
    1.1 網絡運營商的寬帶接入
    首先,網站的鏈路接入上要有多個不同運營商的寬帶接入,這樣可以充分發揮不同運營商的作用。採用DNS 解析的技術,實現電信寬帶負責電信上網客戶對網站的訪問、聯通寬帶負責聯通上網客
戶對網站的訪問、教育網寬帶負責教育網的客戶對網站的訪問,使不同運營商的客戶對網站訪問的速度達到最快。因爲我省大部分互聯網用戶是通過電信上網的,所以採用兩條電信的百兆寬帶,它們承擔了大部分的網站流量。這兩條電信寬帶互爲備份,不僅平均負擔了網站流量,還提高了網站系統的可靠性。
   1.2 防火牆技術 
   爲了適應高併發訪問的要求,在高峯訪問到來之前,應對防火牆的規則做調整:1)關閉各類網絡攻擊檢測,以防火牆的CPU 計算量過大,導致由於防火牆的故障而造成網絡阻塞。2)要根據議防火牆數據包流量的大小,對防火牆過濾規則的先後順序進行調整,與流量大的數據包相關的防火牆過濾規則要調整靠前,這可大大減少CPU 進行數據過濾的計算量,減輕CPU 負載。3)等訪問高峯期過後,還要將防火牆的規則恢復到原先正常的狀態。
   1.3 負載均衡
設備及技術 負載均衡技術是解決集中併發訪問的核心技術,負載均衡主要能夠實現以下功能: 1)多鏈路負載均衡:支持Inbound/Outbound 雙向鏈路負載均衡。 2)防火牆負載均衡:要求能夠實現異構防火牆的雙Active 工作及負載均衡。 3)多站點負載均衡:支持站點主、備數據中心的建設,同時支持智能的DNS 解析。 4)服務器負載均衡:完善的第四/七層交換功能,支持可定製的基於應用層的健康檢查方式,支持會話保持方式。 5)多路連接複用:將多個用戶的請求合成一個連接發送到服務器,減小應用服務器的壓力,提升用戶響應速度。 6)智能壓縮:使用壓縮算法來壓縮HTTP流量,降低帶寬消耗、縮短最終用戶在慢速、低帶寬連接條件下的下載時間。 7)內存Cache:利用Cach e來緩存用戶頻繁訪問的 web 靜態內容,從而減小應用服務器的壓力,提升用戶響應速度。 實現負載均衡技術的主要設備是負載均衡器,我們部署了兩臺F5 公司生產的BIGIP-3600 負載均衡器,這兩臺設備作爲主、備互用。平時只有一臺負載均衡器在工作,一旦這臺工作設備出現故障,系統會及時切換到備用設備上,這樣確保整個網站系統的高可靠性。通過負載均衡設備,將用戶產生的高併發訪問均衡地分流到各個應用服務器上。 
   1.4 應用服務器部署 根據應用服務器的性能和併發訪問量的大小,適當規劃應用服務器的數量。部署原則是:單臺應用服務器的不要求最好,但是數量要足夠,最好能有一定的冗餘。 在訪問量不大的情況下,網站部署了四、五臺應用服務器,這足夠應付日常用戶的訪問;在高併發訪問峯期間,適當增加某些關鍵應用的服務器數量。在高考分數查詢業務上,使用了十六臺服務器,以滿足考生每小時上百萬次的點擊。 
   1.5 數據庫集羣技術
   網站遭受大規模的集中訪問時,在數據庫層面也會出現高併發訪問的情況。網站後臺數據庫使用的是Orac le數據庫,目前Or acl e數據庫解決併發訪問採用的是RAC(Oracl e Real Application Clusters)集羣技術。RAC 採用並行服務器運行方式:在兩臺(或多臺)服務器上各自運行一個數據庫核心進程,但共同管理和操作同一個數據庫文件,該數據庫文件存放在共享的網絡存儲上。客戶端無論連接到哪個服務器上都可以對數據庫進行操作。當服務器A 由於故障失效時,數據庫系統本身並未停止工作,連接在服務器B 上的客戶端還可以繼續進行正常工作,這樣提高了數據庫的高可靠性。由於多個服務器共享一個數據庫,當有高併發數據庫訪問時,可以實現數據庫的負載均衡。 隨着這幾年數據庫技術的不斷髮展,使用數據庫的模式也在不斷改進。經過最近幾年的實踐證明 Oracl e數據庫的RAC 技術是確實可行和可靠了,它成爲我們網站數據庫的統一技術模式。

  2 可靠的軟件開發
  對於用戶可能集中併發訪問的頁面,在網頁編程設計時,要注意以下幾點: 1)網頁代碼大小 所有靜態頁面、動態查詢頁面的代碼要儘可能的短,圖片要儘可能的少,以減少對帶寬的需求。刪除所有無關H TML 標記,儘量將輸入查詢條件頁面、查詢結果輸出頁面的總大小控制在5K 字節以內。 2)網頁壓縮傳輸 開啓網頁壓縮傳輸,可大大減少網頁傳輸數據量的大小。實際模擬測試顯示,如果採用壓縮傳輸,網頁傳輸的數據量僅爲原數據量的1/3。網頁壓縮傳輸不僅可以減少對網站寬帶的佔用,而且因爲傳輸網頁時間短,可大大減少負載均衡、防火牆的併發連接數和負載。採用壓縮技術的唯一的代價就是使應用服務器的C PU 負載增加。 3)網頁編程安全 因防火牆上關閉了網絡攻擊檢測,所以需在網頁編程時做一些必要的防攻擊檢測。如:① 防止SQL 注入式攻擊:對查詢的S QL 字符串進行合法性檢驗,防止被SQL 注入式攻擊後導致整個數據庫被下載。② 防止人工F5 刷新式攻擊:在主頁面、查詢頁面的客戶端代碼禁止F5 按鍵,防止客戶端惡意刷新。③ 防止人工頻繁打開頁面刷新式攻擊:設置Cookie,判斷客戶端打開頁面的時間間隔,低於2 秒的就認爲是人工頻繁打開頁面刷新式攻擊。程序控制暫停數秒後,客戶端才能跳轉到查詢首頁。④ 防止程序自動刷新式攻擊:檢測HTTP_REFERER 變量,減少程序自動刷新式攻擊的可能性。⑤ 隱藏查詢代碼頁面的地址:設置Web 服務器,隱藏查詢代碼頁面的地址,可有效防止各類程序自動刷新式攻擊。⑥圖片驗證碼:採用圖片驗證碼,可有效防止程序自動刷新等方式的攻擊,將圖片分散於各查詢服務器,避免在高併發連接數的環境下成爲系統瓶頸。

3 完善的監控方案 高併發連接數的環境下,要對網站的整個系統進行實時監控。
   監控範圍包括:
1)在防火牆上監控每條寬帶接入的實際帶寬佔用大小,以及防火牆本身的C PU 利用率和內存使用狀況。
2)在負載均衡器上監控整個系統的併發連接數,以及負載均衡器和各個應用服務器的運行狀況是否良好。 
3)通過實時監控軟件,對應用服務器和數據庫服務器的併發連接數、CPU 內存利用率等指標進行實時監測。 以上各個監控部分要專門定人定崗,監控數字要用圖表化的方式顯示,便於觀察。 只有切實做好實時監控,纔可以在第一時間內發現問題,讓系統管理員在最短的時間內作出反應,是做好應急預案的前提。

4 必要的應急預案 
條件許可的情況下,除了關鍵設備配置要有冗餘外,還要做好關鍵設備出現故障時的應急預案。可能遇到的故障及處理方法有:
1)鏈路故障:當網絡運營商的鏈路出現故障,可在域名服務器上,通過更改對外服務的域名的IP地址,切換到正常運行的鏈路上。
2)防火牆故障:當硬件防火牆出現故障時,可在一臺Linux服務器上,利用 Linux自帶的防火牆軟件, 簡單配置一臺軟件防火牆,以臨時替代硬件防火牆。 
3)負載均衡故障:當負載均衡設備出現故障,可通過Linux的 LVS(Linux Virtual Ser ver)技術,在相關服務器上配置Linux虛擬機,實現簡單的負載均衡.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章