通過設置Http頭中的Cache-和的屬性。靜態資源的更新不要直接更新文件內容,要通過更改文件名的方式更新。更新講臺資源的時候使用逐量更新。
使用GZIP壓縮,在服務端對文件進行壓縮,在瀏覽器端對文件解壓縮可以減少通信傳輸的數據量。但是該種方式會對服務器產生一定的壓力,在款低啊良好而服務器資源不足的情況下要權衡考慮。
瀏覽器會在下載完全部的CSS之后才會對頁面進行渲染,所以最好的方式是把CSS放在頁面最上面;但是JS則相反(如果頁面解析時就要用的js還是要放在最上面)。
比如用戶的登錄信息,可以考慮使用攔截器,在用戶登錄的時候把登錄信息和用戶的相關信息存放在里面。
CDN的本質就是把資源放在離用戶最近的地方,CDN能夠緩存的一般是靜態資源,如圖片、文件、CSS、js腳本,靜態網頁。
反向代理服務器的兩個用途:
①保護網站安全;
②配置緩存功能可以加速web請求;
③負載均衡,可以提高網站的并發數
后臺服務器常用的優化方式
緩存相關知識
后臺性能優化的第一定律:優先考慮使用緩存優化性能。
緩存的本質
緩存的本質就是一個內存Hash表,數據以一對Key\Value鍵值對存儲在內存Hash表中。主要用戶存放讀寫比很高、很少變化的數據,網站數據通常遵循“二八定律”,即80%的訪問落在20%的數據上,因此,將這20%的數據緩存起來,可以很好的改善系統性能。
合理的使用緩存
合理的使用緩存對提高系統性能有很多好處,但是不合理的使用緩存反而會成為系統的累贅甚至風險。濫用緩存的三種情況如下:
數據的讀寫比至少應該是2:1以上,即寫入一次緩存,在數據更新前至少讀寫兩次,緩存才有意義。真正實踐中這個比例可能會更高。
如果應用系統訪問數據沒有熱點,不遵循二八定律,即大部分數據訪問并沒有集中在小部分數據中,那么緩存也沒有意義,因為大部分數據還沒有被再次訪問就已經被擠出緩存了。
寫入緩存的數據最好能容忍一定時間的數據不一致,一般情況下最好對緩存的數據設置失效時間(固定值+一定范圍的隨機值)。如果不能容忍數據的不一致,必須在數據更新時,刪除對應的緩存(思考:為什么不是更新緩存),但是這種情況只針對讀寫比非常高的情況。
緩存的常見問題優化手段
緩存雪崩我們可以簡單的理解為:由于原有緩存失效,新緩存未到期間(例如:我們設置緩存時采用了相同的過期時間,在同一時刻出現大面積的緩存過期),所有原本應該訪問緩存的請求都去查詢數據庫了,而對數據庫CPU和內存造成巨大壓力,嚴重的會造成數據庫宕機。從而形成一系列連鎖反應,造成整個系統崩潰。
該類問題的解決方式主要有三種:
①加鎖排隊。大概原理是在去數據庫取數據的時候加鎖排隊,該方法僅僅適用于并發量不高的情況。
②在原有失效時間基礎上加一個合理的隨機值(0-5分鐘)。分布式場景下最常見的方式(單機也可以)。
③給緩存加標記,在緩存失效之后更新緩存數據。
緩存穿透是指用戶查詢數據,在數據庫沒有,自然在緩存中也不會有。這樣就導致用戶查詢的時候,在緩存中找不到,每次都要去數據庫再查詢一遍,然后返回空(相當于進行了兩次無用的查詢)。
該類問題的主要解決方式。
①使用布隆過濾器做過濾。該方法僅僅用于查詢一個不可能存在的數據。
②把不存在的數據也緩存起來。最佳實踐:單獨設置比較短的過期時間網站優化,比如說五分鐘。
緩存中存放的是熱點數據,熱點數據又是緩存系統利用某種算法對不斷訪問的數據篩選淘汰出來的,在重建緩存數據的過程中,系統的性能和數據庫負載都不太好,那么多好的方式就是在緩存系統啟動的時候就把熱點數據加載好,這個緩存預加載的手段叫做緩存預熱。對于一些元數據如省市區列表,類目信息,就可以在啟動的加載數據庫中的全部數據。
分布式緩存架構
分布式緩存是指緩存部署在多個服務器組成的集群中,以集群方式提供緩存服務,其架構方式有兩種:
①以 Cache為代表的需要更新同步的分布式緩存(在所有服務器中保存相同的緩存數據)。
②以為代表的互不通信的分布式緩存(應用程序通過一致性Hash等路由算法選擇緩存服務器遠程訪問遠程數據,可以會容易的擴容,具有良好的可伸縮性)。
異步
使用異步操作,可以大幅度改善網站的性能,使用異步的兩種場景,高并發、微服務;
①高并發,在不使用消息隊列的情況下,用戶的請求數據直接寫入數據庫,在高并發的情況下會對數據庫造成一定的壓力,同時也使得響應延遲加劇。使用消息隊列具有很好的削峰作用,在電子商務網站促銷活動中,使用消息隊列是常見的技術手段。
②微服務之間調用網站優化,在微服務流行的當下,有時候我們調用其他系統的微服務接口,只是為了通知其他系統,我們不關心結果,這個時候我們可以使用單獨的線程池異步調用其他系統的微服務,這樣可以減少程序的響應時間。
任何可以晚點的事情都應該晚點再做。
集群
在網站高并發訪問的場景洗下,使用負載均衡技術為一個應用構建一個由多臺服務器組成的服務器集群,可以避免單一服務器因負載壓力過大而響應緩慢。常用的負載均衡技術有以下幾種:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。