記錄一次專案部署的問題

2021-08-20 18:35:14 字數 1262 閱讀 8315

正式伺服器上的服務更新後,晚上6點定時任務啟動,服務失去響應,後台頁面打不開,連線的裝置逐漸離線。

第一時間連上伺服器檢視專案的日誌,發現日誌不斷的在滾動針對某幾張資料庫表的查詢日 志,根據日誌內容,可以判定後台正在執行下發資源的業務。業務本身需要大量的資料操作,但歷史版本在執行對應操作時,卻不會導致頁面連線超時。

思考到更新後版本異常,而更新前正常,便去對比此次修改的**,是否多刪除了某些**。經過簡單的比較發現此次更新的**並不會對該業務產生影響。

思考是否是快取配置失效,導致原本走入快取的請求全部壓到了資料庫上。先檢查了配置檔案,發現redis快取正常,進入redis檢視快取資料,也是正常。

確定快取配置無誤後,任然不能排除快取異常的嫌疑。既然配置無誤,便有可能是使用快取的地方有誤,找到業務開始**,初步瀏覽後發現:原先為測試環境注釋掉了去快取、對比快取的**,而此次部署正式環境時卻為注意到該段**。此時才如夢初醒,急忙解開注釋,重新打包,重新部署,啟動專案後,希望以前正常,但是,事與願違啊!問題還是依舊,看來不止這一處有問題。

重新開啟檢視日誌,發現日誌中訪問資料庫的sql語句並未有明顯得減少。思考是否是解開的快取並未生效?本地呼叫介面測試發現快取已經生效,凡是能定位到快取的請求都能正常返回,而需要走到資料庫的請求都會超時。

此時想到是否和資料庫有關,對比資料庫連線,沒有發現異常,檢視資料庫連線池配置,發現線上版本提供的資料庫連線池最大才給到100,而上個版本的服務給到了300,是否會是資料庫連線池給的不夠呢?抱著死馬當活馬醫的態度,重新修改了資料庫連線池,給到了300,重啟專案後,發現日誌滾動依舊很頻繁,前端依舊處於無法顯示的狀態,而在等待了一段時間後,日誌滾動恢復正常,急忙開啟首頁,一切正常。此時問題才算是初步解決。

在和客戶「交流」後 ,算是告一段落,不過問題出現到解決持續時間比較長,客戶一直打**給上司,甚至正面硬懟了老大。感覺自己心裡挺不好意思的,自己的問題,卻要老大背鍋。不過還是非常感謝老大,雖然他在回家的火車上沒有提供到什麼實質的幫助,但是沒有硬懟我,而是教我一步步的定位問題。雖然大多數的建議最後都被證實不是引發本問題的罪魁禍首,但是我還是非常感謝。

此專案是乙個閒置了一段時間的專案,專案完成後部署後便立即投入了下乙個專案的開發中,平時也就是上去改改小東西,導致此次更新大版本時都已經忘記了自己上次把快取給注釋了,也忘記了將連線池改小了(本次測試不允許擁有那麼多的連線數)。便導致了今天的問題,其實所有的原因都是因為自己的不細心,作為一名軟體開發工程師,粗心真的是乙個非常非常非常嚴重的問題,需要引起足夠的重視。立此貼為證,我給自己定下乙個規矩:今後凡是部署專案,專案啟動後,需要乙個個檢查對應的配置檔案是否配置正確,爭取杜絕今天的事件重演。

記一次ArcSDE 專案部署經驗

在新伺服器上部署sde,一開始總是命令列啟動不了sde服務,報錯系統服務列表找不到預設esri sde服務。這個肯定是去檢視系統服務列表檔案 c windows system32 drivers etc services 和sde服務檔案 sdehome etc services.sde 發現兩個檔...

專案部署問題

api 對url 的後台路徑進行 監聽乙個埠 server location api 前端專案中訪問後台的介面一定要寫nginx的監聽埠 然後去匹配 api 到jar包執行的埠 要不然訪問不通過會跨域 如果不寫埠 訪問的還是本地的80埠 跨域 要通過nginx 訪問 如果在本地測試 localhos...

專案部署一

ubuntu nginx和uwsgi 1 生產環境 為什麼實現專案部署,為了實現動靜分離 普通的部署到linux伺服器上 1 申請伺服器的賬號 2 部署前的準備工作 安裝ftp工具 安裝ssh工具 安裝mysql等資料庫 專案上傳的準備 壓縮包的格式 linux下壓縮包解壓縮 zip格式 rm rf...