针对web高并发量的处理
針對高并發量的處理 一個老生常談的話題了 至于需要運維支持的那些cdn、負載均衡神馬的就不贅述了 你們都懂的
蟲子在此博文只講一些從程序角度出發的一些不錯的解決方案。 至于從數據庫角度的性能方案、蟲子另開博文。
1. 首推靜態化 推薦指數五顆星 滿星五顆
只要是大型互聯網應用基本上離不開這個概念,IIS自帶的偽靜態化不談,但是想做好靜態化并不是一個容易的過程 動態和靜態之間的取舍需要用一個平衡的戰略眼光來看待
舉個例子 當初在盛大游戲的時候 遭遇永恒之塔aion上線,悲摧、血淚,周末過去加班,目的、論壇必須抗住壓力。好吧,讓我重構整個論壇是不可能了,怎么整,靜態化。如何靜態化,全站!!!忽悠、大忽悠,爬網爬整個論壇么,非也。說是全站、其實也就是首頁、版面頁、熱門板塊的前20頁等,開多個線程一起跑、擔心線程資源問題就copy下程序,復制下來改個參數開多個進程跑。靜態站完成了、然后怎么辦,用戶怎么互動。亮點來了,其實我們是6臺動態站、1臺靜態站,因為大部分用戶只看看不說話,所以我們以靜態站為入口,如果用戶產生互動 我們就把他們甩到動態站去。oh yeah,似乎也沒那么復雜。至于一般的互聯網應用其實一般首頁靜態化就足夠了。?
2.異步請求
關于ajax一般不是新手的話都已經很了解了,Asynchronous JavaScript and XML。大多數人可能把ajax看成是提供用戶體驗的方案。實際上ajax對于減輕服務器壓力也是很有幫助的。ajax在服務端返回來的僅僅只是瀏覽器端需要的數據,比如你的select,返回的是僅需要一串json而不會返回一大堆多余的html標簽。這樣能減輕網絡負載。增大網絡吞吐率。
目前蟲子的東家,在大型B2B站點上這個方案用的尤為出色。
3.并行計算
蟲子以前的博文中介紹過cuda并行框架,現在微軟4.0也已經提出了并行計算。不過還沒深入研究,當然并不是一個站點的所有模塊都適合并行計算,僅限于查詢、行為分析等。
4.緩存什么就不多扯了
5.文本存儲
對于一些常用的資源可以在站點啟動初,就形成固化資源、定時維護。例如web安全的規則文件。
6.動靜分離
圖片資源、css、視頻的等等靜態資源切換到獨立服務器。
7.用戶引導
社會學方案,哈哈
8.減少session的使用 你們也懂的 不多說
9.無關安全的計算可以放在客戶端
例如層級跳轉、用戶調查中根據前文選擇的后續命題選擇等等 可以用js實現
10.還有很多 .....
?
轉載于:https://blog.51cto.com/dubing/712422
總結
以上是生活随笔為你收集整理的针对web高并发量的处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (运维)VMware-vCenter-S
- 下一篇: wcf系列学习5天速成——第五天 服务托