專案出現的問題記錄

隱心咒Amor發表於2020-10-09

專案場景:多使用者同時訪問頁面,大量使用者同時進入導致列表頁面無法載入出來和二維碼詳情頁二維碼無法開啟.

描述: 列表頁會載入此使用者所有擁有的二維碼門票列表,使用者點選單個二維碼將進入二維碼詳情頁面,此頁面會查詢很多次將詳情頁面所有需要的資料載入至頁面上,訪問資料庫的操作比較多

問題描述:訪問登入頁面,二維碼列表頁,二維碼詳情頁很慢

原因分析:

1 首先肯定是大量使用者同時登陸註冊進入系統導致系統負載變大,系統執行效率很低
2 二維碼會在伺服器端進行base64位加密, 這個加密操作很消耗時間
3 程式碼優化

解決方案:

  1. 首先增大了伺服器記憶體和CPU ,擴充套件完伺服器後cpu佔用降低至30%左右, 記憶體佔用20%吧好像,擴增完之後伺服器負荷已經減少很多,但是專案執行訪問效果並不如意,
  2. 負載均衡 nginx 兩個伺服器切換使用
  3. 優化Tomcat 增大記憶體 增大併發數量 預設200 直接增大至5000 但是實際測試好像沒什麼用
  4. 優化程式碼 將多個請求合併 請求二維碼和二維碼覆蓋的請求合併 但是後來又取消合併了 認為同時載入二維碼和查詢日誌記錄表會很慢 還不如拆分開來獲取二維碼更快
  5. 優化mysql 建立查詢索引 日誌表 建立多行索引 多列索引比單列索引查詢效率更高
ALTER TABLEADD INDEX  索引名(1,2,3)

這些操作做完之後實際效果並不如意,明天看看再說

相關文章