伺服器掛了可能引發的問題

2021-07-11 18:13:04 字數 1566 閱讀 6498

今天遇到三個測試提過來的問題 

1、測試新上傳的獲取不到,返回的名稱也是null  -----伺服器掛了

原因開發環境的伺服器掛了

2、測試新建模板的時候失敗----伺服器沒有啟動相關服務

經過排查原因測試環境的mongo伺服器沒有啟動我們專案mongo表對應的服務

我的處理辦法:先切換到測試環境進行測試確實存在這個問題,後來啟動我本地進行測試,我本地是好的,說明是測試的環境某個環節出問題了,打測試的包,切換host在本地進行測試,程式報錯,鏈結不到某台伺服器,即測試環境的伺服器的我們庫所在埠的服務沒有啟動。

3、測試新建活動失敗  ---redis 快取的問題

在解決這個問題的時候就比較坑了,因為剛剛剛找測試啟動了斷了連線的mongo表所在的伺服器,

所以排除了是環境問題,但是經過跟蹤除錯確實是程式裡面的某個該去mongo表裡面取值的地方沒有獲取到值,導致後面出現的異常問題,

這時控制台報錯有異常拋錯,過了一會又出現mongo連線不上的異常,再次詢問測試的環境搭建人員查詢原因,得到的原因如下:

「 剛剛啟動命令少加了後台執行的引數。」

好了解決完了這個問題應該都ok了吧,但是還沒結束。。。

控制台雖然沒有再報連線不上mongo所在那台伺服器的錯誤,但是異常資訊仍然存在,依然乙個值獲取為空導致的異常:

哈哈下面來看看這個值獲取的**吧:

public pageprototype findpageprototypecached(long id) 

prototype = pageprototypedao.querybyid(id);

if (prototype != null) 

return prototype;

}    

這裡呢某個重要值就是demo啦,跟據我們的**可以看到demo值是不可能為空的,因為在初始化進來的時候就會

prototype.set

demo(fileentrymanager.getfilecontent(demopath,mongotable.table_page_prototype));

通過這句去mongo裡面取值set進去。

好了巧合來了:

剛剛我們的mongo掛了,所以第一次進來的時候當然沒走快取,因為還沒有這個key值,然後就去我們的mongo表裡面查詢唄,剛好mongo也掛了,所以就沒有從我們mongo表裡面獲取到資料,fileentrymanager.getfilecontent(demopath,mongotable.table_page_prototype)

程式繼續向下執行就把沒有獲取到資料的這個物件放到了我們的快取裡面,方便下次用。。。。

所以就造成了我們後面修復了mongo,物件裡面的值還是沒有獲取到,

原因是後面程式都是從快取取值,快取剛好存的是之前沒有獲取到值的時候的物件。

像這種原因只有看**才找的到的!!

前面確實是環境掛了的問題,後面說說我們程式的問題吧,像這種問題我們可以在程式裡面處理一下那個可能為空的值,當為空的時候應該把錯誤打出來,這樣才方便查詢定位問題的所在,不至於浪費一下午的時間排除問題!

github伺服器掛了

今天在群裡的小夥伴,突然在討論github服務掛了,之前有篇文章講 github上建立部落格 於是我測試了一下clone乙個版本,如果只是網頁服務當了,那就不影響使用 發現轉殖乙個版本沒有辦法轉殖,這就影響使用了 這樣的結果就是很多小夥伴沒有辦法git乙個一些開源的軟體,如bootsrtap,jqu...

伺服器掛掉的幾種可能

1.如果不是涉及到大併發的問題,有可能遭受惡意攻擊。檢視secure日誌。安全日誌。伺服器訪問日誌,然後檢視攻擊點,然後使用命令禁掉ip 就ok了 iptables i input s j drop 2.如果 涉及到大併發問題,有規律就是在每天的固定時間點 併發訪問高潮 掛掉,這個時候需要業務邏輯做...

伺服器宕機可能的原因以及伺服器宕機解決辦法

伺服器宕機可能的原因以及伺服器宕機解決辦法 伺服器宕機是指伺服器因為某些原因而導致伺服器無法運轉,造成網路無法正常使用。對於 來說,伺服器宕機所造成影響很大,它不但造成訪客無妨對 進行訪問,甚至還可能影響到 在搜尋引擎上的收錄和排名,因而在租用伺服器時,建議站長選擇想美國伺服器這種出現宕機概率比較低...