今天突然發生了一件怪事,在內測環境下所有的客戶端通過hessian請求服務端時,部分的請求直接返回??'j' is unknow code ,服務端并不報錯。發生這個問題,真把我給急壞了,內測環境是我們上線生產的最后一道關,如果這個故障不解決,所有的應用都要停止上線,以免給生產系統造成影響。一方面更新郵件不停的在累積,另一方面,出于對生產系統負責的態度,不敢對生產環境進行更新。
某大神一直認為是項目中的包的版本的問題,不斷的讓我換依賴包的版本,當時我也沒有太好的排查方案,只好先嘗試換換看,換來換去問題依舊。一上午很快就過去了,到下午,無線那邊的產品挨個找我問我情況,迫于壓力,我回復產品部門,四點之前一定給出出力結果。于是我開始自己來分析問題。
1、生產環境和測試環境都沒問題,只有內測環境有問題。內測環境的包和生產環境的包都是一樣的,應用的包文件沒有更換過,這樣其實先排除應用內部的原因了。(所以說上午聽某大神的換依賴包版本的建議是有多么的離譜了)
2、把內測客戶端的RPC的請求地址先換成生產的RPC,排除故障是否與服務端有關系。改完測試之后,發現客戶端和服務端都沒問題。請求都很正常。說明問題在中間轉發層或者是服務端。再把RPC的請求地址更換成內測服務端的IP地址(除中間轉發層),發現請求都正常。排除之后可以肯定,是由于中間層轉發出現了故障造成的。
3、找到運維的負責請求轉發的同事,讓他檢查了一下,最終確認的原因是由于 應用防火墻的配置有問題導致請求被攔截造成返回數據無法被hassian協議識別導致的。修復應用防火墻配置,故障恢復。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
