SpringCloud專案,介面呼叫返回http 500 - Internal Server Error的錯誤
阿新 • • 發佈:2018-12-11
今天上班的時候,自己正在參與的Spring Cloud專案出現了問題,原本上週五還正常的專案突然所有介面呼叫都是返回http 500的錯誤。
專案的狀態是在Eureka上可以看到對應微服務是線上狀態,然後在Swagger裡面測試介面,發現介面間歇性呼叫失敗,也就是題目中的http 500的錯誤,如下圖。至於是間歇性的原因在於這個服務在線上部署了一個,然後我自己的機器上啟動了一個,出問題的就是我自己機器上的。我在多次呼叫介面後發現,每次呼叫成功,本地IDE的控制檯都沒任何資訊列印,這放在平常是會列印一些記錄的,而控制檯上只間歇列印了Eureka的保活報文,所以在這裡我基本認定是我本地的微服務出了異常。
這裡先插播一個題外話,這個http 500的問題我也不是第一次遇到了,在我最初接觸SpringCloud架構開發時就遇到過類似的問題,而且困擾了2天,最後發現是因為線上的微服務掛了,但是Eureka上這個服務還是線上的,導致請求也會分發給這個異常微服務,然後我本地跑了一個正常的,這之後介面呼叫就是間歇性的http 500了,和這次的情況很相似。
考慮到這個專案上週末還是正常的,也就這週迴來第一次啟動就出現了這個問題。然後我想了想,這週末機器上只是安裝了一個虛擬機器VMware,其它什麼也沒搞。然後又想到安裝完虛擬機器和centos之後還把虛擬機器的虛擬網路設定了一下。開啟控制面板一看,果然多了兩個VMware的網路介面卡,把它倆都禁用之後(只禁用一個不管用),再重新啟動專案就正常了。
至於為什麼這兩個網路介面卡會影響到SpringCloud專案的介面呼叫就不得而知了,以後有時間再研究吧。