針對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.還有很多 …..
本文轉自 熬夜的蟲子 51CTO部落格,原文連結:http://blog.51cto.com/dubing/712422
相關文章
- 轉載:Java處理高併發量訪問的處理總結Java
- 處理高併發的一般思路
- 針對於早期版本的flutter開發的app的處理FlutterAPP
- 高併發實戰之冪等處理
- Apache Tomcat如何高併發處理請求ApacheTomcat
- 高併發處理思路與手段(一):擴容
- 如何處理系統具有較大併發量?
- Postgres併發處理
- MySQL 併發處理MySql
- JAVA多執行緒下高併發的處理經驗Java執行緒
- 關於高併發和分散式中的冪等處理分散式
- 海量資料的併發處理
- 處理併發衝突
- .net core 在網路高併發下提高JSON的處理效率JSON
- 處理高併發 IO瓶頸解決紅包程式
- node.js為什麼能處理高併發情景?Node.js
- 網站高併發大流量訪問的處理及解決方法網站
- 【轉】從msql資料庫處理高併發商品超賣SQL資料庫
- Go併發呼叫的超時處理Go
- SQLite 併發的四種處理方式SQLite
- Entity Framework Core中的併發處理Framework
- 併發問題處理方式
- 移動端複製文字clipboard 以及針對iOS的處理iOS
- JEP 428:針對JDK 19提出的結構化併發JDK
- 我們來談下高併發和分散式中的冪等處理分散式
- 簡述高併發解決思路-如何處理海量資料(中)
- IIS Web伺服器的高併發設定Web伺服器
- 多對一處理 和一對多處理的處理
- 異常-JDK7針對多個異常的處理方案JDK
- 聊聊介面最大併發處理數
- 前端優化之高併發處理前端優化
- EF Code 如何應對高併發
- 針對web開發者的瀏覽器快取指南(譯)Web瀏覽器快取
- 大數量的DML時對索引處理的技巧索引
- 併發處理規則最佳推薦
- Spring如何處理執行緒併發Spring執行緒
- Go 併發 2.2:錯誤處理模式Go模式
- ElasticSearch 文件併發處理以及文件路由Elasticsearch路由
- 使用Fan-Out模式併發處理模式