如何處理大流量高併發

1.動靜分離。css

  將網站中的靜態資源單獨拆分出來, 好比 css, js, 圖片, 視頻資源單獨存儲在一臺服務器上, 或者直接使用雲存儲平臺, 七牛雲或者阿里雲之類的, 這樣能有效的下降主服務器的運行壓力前端

2.CDN加速。webpack

  雲平臺提供 CDN 加速, 能夠對資源進行全國服務器節點的分發, 提升全國各地的訪問速度。nginx

3.反向代理,負載均衡。web

  反向代理就是將用戶的請求, 分發到不一樣的 web 服務器上, 進行處理, 下降單臺服務器的壓力, 負載均衡則是根據 web 服務器的性能進行請求的分配, 負載較小的多分配一些請求, 負載較大的小分配一下請求.   nginx 就能夠實現反向代理和負載均衡。redis

4.使用數據緩存。數據庫

  數據緩存能夠使用 memcache 和 redis 這樣的內存緩存系統來實現, 將一些經常使用數據寫入到內存中, 從而提高響應的速度。緩存

5.數據庫優化。服務器

  數據緩存,結構優化,定位慢查詢語句,語句優化,索引優化,分庫分表,主從複製讀寫分離,中文分詞。負載均衡

6.壓縮合並js   css。

  過多的 js 和 css 請求會消耗服務器的資源. 能夠藉助前端工具 webpack 來進行打包。

7.分佈式集羣搭建。

  將業務拆分到不一樣的服務器下, 下降單臺服務器壓力.例如用戶和商品功能拆分開。

8.頁面靜態化。

  頁面靜態化實際上是緩存的一種實現, 將要返回的 HTML 內容預先寫入到一個文件中, 訪問的時候能夠直接返回該文件中的內容。

9.防止外部盜鏈。

  盜鏈是其餘網站引用當前服務器的資源, 好比css, js 和圖片,主要是圖片. 能夠使用 refer 進行限制。

10.使用消息隊列。

  將請求的內容壓入到隊列中, 用另外的腳本異步處理請求, Redis 的列表結構就能夠實現這個效果。

相關文章
相關標籤/搜索