最近學習了壓力測試,發現自己做的專案吞吐量低,便對專案進行了一些優化。
前後端分離開發:採用頁面靜態化,前端人員可以將頁面存在瀏覽器快取中。
非分離開發:採用頁面快取,後端人員可以將返回給客戶端的頁面,提前渲染頁面存於redis快取中,設定1分鐘的過期時間。
將物件id作為key物件資訊作為value存入reids快取中,這個可以永久儲存,但進行物件資訊修改時,需要先修改資料庫,再將快取刪除,防止資料庫資訊與快取不一致。
注意:為什麼不先刪除快取,後修改資料庫,當我們先刪除快取後,還沒修改資料庫時,又有乙個人使用了這個物件,會將舊的資料庫資訊再次新增到快取中,導致資訊不一致。
當有大量請求併發訪問時,一定伴隨著資源的不斷建立和釋放,導致資源利用率低,降低了服務質量。執行緒池是一種通用的技術,通過預先建立一定數量的執行緒,當有請求達到時,執行緒池分配乙個執行緒提供服務,請求結束後,該執行緒又去服務其他請求。 通過這種方式,避免了執行緒和記憶體物件的頻繁建立和釋放,降低了服務端的併發度,減少了上下文切換和資源的競爭,提高資源利用效率。
1.js/css壓縮,減少流量
2.多個js/css組合,減少連線數
3.使用cdn,將**快取在多個節點,讓使用者使用離他最近或者網路連線最好的節點。
十 nginx之Keepalived 提高吞吐量
利用apache jmeter工具,監控吞吐量。在使用 keepalived 提高吞吐量之前 可以看到在使用keepalived 提高吞吐量之前,吞吐量為2488 sec。接下來使用keepalived 提高吞吐量,效果圖如下 在使用keepalived 提高吞吐量之後,吞吐量達到了3687 sec...
部署springboot專案
開發完了以後要部署,那麼怎麼部署呢?第一種 jar方式 注意是在springboot target目錄下生成乙個jar檔案 然後直接輸入鏈結就可以訪問了 第二種 war部署 哪種好?最近公司在做一些內部的小型web應用時,為了提高開發效率決定使用springboot,這貨自帶servlet容器,你在...
springboot專案略述
1.springboot專案是由啟動器 父專案啟動器等組成 org.springframework.boot spring boot starter parent 2.2.2.release lookup parent from repository 2.開啟父專案啟動器,其中配置了另乙個父專案關鍵...