1. 程式人生 > >如何處理大流量高併發

如何處理大流量高併發

1.動靜分離。

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

2.CDN加速。

  雲平臺提供 CDN 加速, 可以對資源進行全國伺服器節點的分發, 提高全國各地的訪問速度。

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

  反向代理就是將使用者的請求, 分發到不同的 web 伺服器上, 進行處理, 降低單臺伺服器的壓力, 負載均衡則是根據 web 伺服器的效能進行請求的分配, 負載較小的多分配一些請求, 負載較大的小分配一下請求.   nginx 就可以實現反向代理和負載均衡。

4.使用資料快取。

  資料快取可以使用 memcache 和 redis 這樣的記憶體快取系統來實現, 將一些常用資料寫入到記憶體中, 從而提升響應的速度。

5.資料庫優化。

  資料快取,結構優化,定位慢查詢語句,語句優化,索引優化,分庫分表,主從複製讀寫分離,中文分詞。

6.壓縮合並js   css。

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

7.分散式叢集搭建。

  將業務拆分到不同的伺服器下, 降低單臺伺服器壓力.例如使用者和商品功能拆分開。

8.頁面靜態化。

  頁面靜態化其實是快取的一種實現, 將要返回的 HTML 內容預先寫入到一個檔案中, 訪問的時候可以直接返回該檔案中的內容。

9.防止外部盜鏈。

  盜鏈是其他網站引用當前伺服器的資源, 比如css, js 和圖片,主要是圖片. 可以使用 refer 進行限制。

10.使用訊息佇列。

  將請求的內容壓入到佇列中, 用另外的指令碼非同步處理請求, Redis 的列表結構就可以實現這個效果。