高性能/高併發 WEB SERVER 架構思路

       Web2.0的興起,掀起了互聯網新一輪的網絡創業大潮,互聯網不斷擴大的規模,日益增長的用戶羣,對互聯網網站建設提出了新的要求: 高性能和高可擴展性。

本文從網站架構層面介紹不同性能需求階段,網絡架構的演變和設計思考。

一、Nginx反向代理,實現負載均衡。

對於傳統的低流量應用,基本夠用,具有一定可擴展性。其中Nginx可以嵌套已經實現性能和服務擴展。

 

二,Varnish提升性能

爲了方便畫圖,我只寫了一個web,多數情況下都是多個web,其中增加了varnish對靜態、動態資源進行緩存,以提高性能,大體可提供數倍的性能。Varnish也有反向代理的能力,但Nginx更優秀,所以建議採用兩者配合的方式搭建架構。

 

三、緩存的使用以提升web性能

此處只是web服務本身性能提升,即圖2中的web1服務,不涉及整體架構。架構設計中增加了緩存數據庫,並不是每次訪問都去數據庫,從而大大提高效率,目前redis用的比較多,網上也很多對比資料,這裏就不廢話了。

四、消息中間件進一步提升web服務性能

ActiveMQ 是一個 MOM,具體來說是一個實現了 JMS 規範的系統間遠程通信的消息代理。用於以分佈式應用或系統中的異步、松耦合、可靠、可擴展和安全通信。這類的通訊組件很多,基本架構也大同小異,這裏也不多說了,簡單架構示意如下:

五、使用MongoDB

MongoDB 是一個基於分佈式文件存儲的數據庫。旨在爲 WEB 應用提供可擴展的高性能數據存儲解決方案。應用後架構如下

六、應用MogileFS

MogileFS是一個開源的分佈式文件存儲系統,用來分擔海量小文件的存取工作,架構如下:

 

七、總結

  1. 使用Ngnix做負載均衡,以應對高併發的訪問
  2. 使用varnish和Memcached/redis來再不同層面做緩存,以提高性能
  3. 使用ActiveMQ來實現異步業務處理,來提高系統性能和可伸縮性。
  4. 使用MongoDB來支持海量數據處理,同時也提高系統可伸縮性。   
  5. 使用MogileFS來支持海量小文件的存儲。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章