大型網站應用之高併發情況下的解決方案

高併發情況下的解決方案:

1. 應用程序和靜態資源文件進行分離;
2. 頁面緩存;
3. 集羣與分佈式;
4. 反向代理;
5. CDN;

1、應用程序和靜態資源文件進行分離
所謂的靜態資源就是我們網站中用到的Html、Css、Js、Image、Video、Gif等靜態資源。應用程序和靜態資源文件進行分離也是常見的前後端分離的解決方案,應用服務只提供相應的數據服務,靜態資源部署在指定的服務器上(Nginx服務器或者是CDN服務器上),前端界面通過Angular JS或者Node JS提供的路由技術訪問應用服務器的具體服務獲取相應的數據在前端瀏覽器上進行渲染。這樣可以在很大程度上減輕後端服務器的壓力。

(2)頁面緩存
頁面緩存是將應用生成的很少發生數據變化的頁面緩存起來,這樣就不需要每次都重新生成頁面了,從而節省大量CPU資源,如果將緩存的頁面放到內存中速度就更快。
可以使用Nginx提供的緩存功能,或者可以使用專門的頁面緩存服務器Squid。
(3)集羣與分佈式
(4)反向代理(Nginx)
(5)CDN
CDN服務器其實是一種集羣頁面緩存服務器,其目的就是儘早的返回用戶所需要的數據,一方面加速用戶訪問速度,另一方面也減輕後端服務器的負載壓力。
CDN的全稱是Content Delivery Network,即內容分發網絡。其基本思路是儘可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。
CDN通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN系統能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。其目的是使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。
也就是說CDN服務器是部署在網絡運行商的機房,提供的離用戶最近的一層數據訪問服務,用戶在請求網站服務的時候,可以從距離用戶最近的網絡提供商機房獲取數據。電信的用戶會分配電信的節點,聯通的會分配聯通的節點。
CDN分配請求的方式是特殊的,不是普通的負載均衡服務器來分配的那種,而是用專門的CDN域名解析服務器在解析與名的時候就分配好的。
CDN結構圖如下所示:

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