1.出錯場景
今天遇到一個問題,在用戶登錄時,發現用戶在登錄的時候,一個用戶登錄正常,一個用戶登錄報錯,報錯的原因時400錯誤,分析對比發現一個用戶的分配用戶組多,一個分配的少,其中多的那個出錯了。
2. 解決辦法
後來同事通過直接在IDEA使用調試方法,發現調用獲取app 的方法出錯。
出錯,出錯的原因是 HTTP 的請求頭過大,原因是,我們使用feign調用的時候,同時在請求頭中放入了當前用戶的信息,作用是 節省從 redis 去獲取當前用戶請求帶來的省耗。
解決辦法是,不在請求頭中加入此信息。
但是如果不用上述的方法有沒有辦法找到問題呢,其實也是有辦法的,可以使用 wireshark 進行抓包。
可以在過濾器輸入框中輸入如下的條件
http contains "getAppsByIds"
我們在登錄的時候,就會命中此請求。
我們追蹤請求流的信息。
可以明顯的看到,請求頭中傳入了 curUser:的請求頭,其實正常情況下是沒什麼問題的,不過請求頭有大小限制,如果用戶設置過多的用戶組,其實就會出現上面的問題。