Web系統架構的效能優化

才智咖 人氣:9.33K

隨著網路的發展,使得許多系統開發、設計者對系統的設計、維護要求越來越高。那麼如何能使系統的效能得到更好的運用,我們一起來看看!

1 靜態頁面

大家都知道,效率最高、消耗最小的就是純靜態化的html頁面,所以要儘可能使系統上的頁面採用靜態頁面來實現,這個最簡單的方法其實也是最有效的方法。但是對於內容多且頻繁更新的系統,無法全部手動去逐個實現,也許可以採用資訊釋出系統CMS來管理和實現。儘可能的靜態化也是提高效能的必要手段,同時頁面靜態化也是某些快取策略使用的手段,對於系統中頻繁使用資料庫查詢但內容更新很小的應用,可以考慮使用頁面靜態化來實現,這些資訊都可以進行後臺管理並且儲存在資料庫中,這些資訊其實大量被前臺程式呼叫,我們可以採用Ajax的方式來處理相關的請求操作,針對於查詢資料來說這樣就可以根據所需來獲取相應的資料,而不必要重新整理整個頁面。其實我們是不是可以考慮一下,像開發遊戲那樣把相關的都放到客戶端來做處理呢,這樣就大大減少了服務器的負載,伺服器可以更好地提供服務,而不必要去做太多的處理。物件導向化的指令碼程式設計,更好地解決了難於維護的問題。

注:不建議使用Ext、Dwr等Ajax框架,這些框架都很繁瑣不利於維護,可以使用相對比較簡單的Json、JQuery等。

2 程式程式碼

程式是構成系統的核心,是系統的靈魂。良好的命名規則與程式設計規範可以減少程式程式碼之間的冗餘,程式編寫的`好與壞、效能的高與低都決定了系統是否可以高效率的執行。基於現在都是面向介面化程式設計,就更好地解決了程式的耦合性。分層架構與外掛化架構已成為Web系統架構的趨勢,它可以不依賴其他介面或程式使系統也可以執行,大大減少系統程式碼的重構,更有效地降低了維護成本。

3 影像伺服器分離

大家知道,對於Web伺服器來說,不管是Apache、IIS還是其他容器,影像是最消耗資源的,於是我們有必要將影像與頁面進行分離,獨立的影像伺服器,甚至很多臺影像伺服器,這樣的架構可以降低提供頁面訪問請求的伺服器系統壓力,並且可以保證系統不會因為影像問題而崩潰。在應用伺服器和影像伺服器上,可以進行不同的配置優化,比如Apache在配置ContentType的時候可以儘量少支援LoadModule,以保證更高的系統消耗和執行效率。京北方也採用了影像伺服器架構上的分離,並且還提供了高效率的影像圖片壓縮技術,這樣更好地節約了影像伺服器的空間,還可以針對不同要求提取相關影像。另外在處理靜態頁面或者圖片、JS等訪問方面,可以考慮使用lighttpd代替Apache,它提供了更輕量級和更高效的處理能力。

4 資料庫叢集和庫表雜湊

金融行業系統都有複雜的應用,這些應用必須使用資料庫,那麼在面對大量資料處理的時候,資料庫的瓶頸很快就能顯現出來,這時一臺資料庫將很快無法滿足應用,於是我們需要使用資料庫叢集或庫表雜湊。在資料庫叢集方面,很多資料庫都有自己的解決方案,Oracle、Sybase等都有很好的方案。對於使用了什麼樣的DB,就參考相應的解決方案來實施即可。資料庫叢集由於在架構、成本、擴張性方面都會受到所採用DB型別的限制,於是我們需要從應用程式的角度來考慮改善系統架構,庫表雜湊是常用並且最有效的解決方案。我們在應用程式中安裝業務和應用或者功能模組將資料庫進行分離,不同的模組對應不同的資料庫或者表,再按照一定的策略對某個頁面或者功能進行更小的資料庫雜湊。比如影像表,按照影像ID進行表雜湊,這樣就能夠低成本地提升系統的效能並且有很好的擴充套件性。最終可以在配置檔案中進行簡單的配置便能讓系統隨時增加一臺低成本的資料庫進來補充系統性能。

5 快取機制

快取一詞搞技術的都接觸過,很多地方用到快取。這裡先講述最基本的兩種快取。架構方面的快取,對Apache比較熟悉的人都能知道Apache提供了自己的modproxy快取模組,也可以使用外加的Squid進行快取,這兩種方式均可以有效地提高Apache的訪問響應能力。系統程式開發方面的快取,Linux上提供的Memcached是常用的快取方案,可以在Web開發中使用,可以實時或者Cron地把資料、物件等內容進行快取。另外在使用Web語言開發的時候,各種語言基本都有自己的快取模組和方法,Java就更多了。

6 負載均衡

負載均衡(Load Balance)建立在現有網路結構之上,它提供了一種廉價、有效、透明的方法擴充套件網路裝置和伺服器的頻寬、增加吞吐量、加強網路資料處理能力、提高網路的靈活性和可用性負載均衡,是系統解決高負荷訪問和大量併發請求採用的終極解決辦法。

(1)硬體負載均衡。硬體負載均衡解決方案是直接在伺服器和外部網路間安裝負載均衡裝置,這種裝置我們通常稱之為負載均衡器,由於專門的裝置完成專門的任務,獨立於作業系統,整體效能得到大量提高,加上多樣化的負載均衡策略、智慧化的流量管理,可達到最佳的負載均衡需求。硬體負載均衡在功能、效能上優於軟體方式,不過成本昂貴,如果可以的話還是比較好的選擇。

(2)軟體負載均衡。軟體負載均衡解決方案是指在一臺或多臺伺服器相應的作業系統上安裝一個或多個附加軟體來實現負載均衡,如DNS Load Balance,Connect Control等,它的優點是基於特定環境、配置簡單、使用靈活、成本低廉,可以滿足一般的負載均衡需求。