在GNU/Linux中,我的一個應用程式出現了問題。 它在我的開發環境中正常運行,大部分組件在 dockers 或原生環境中運行,但在需要部署它的服務器環境中隨機(經常,但不總是)失敗。
基礎設施:
[Ubuntu Server 20.04 host-1中的應用程式]<-->[路由器 防火墻]<--> [Ubuntu Server 20.04 host-2]
兩臺服務器似乎都有足夠的資源-4個CPU,4GB RAM。
運行應用程式的機器必須連接到在該host2中運行的RabbitMQ,并在那里的不同佇列中發布(我在這里沒有看到失敗)和訂閱(往往會失敗)。
問題是:有時它可以作業(有一個路由器 防火墻,但問題似乎不在那里),但許多其他時候,由于某種原因,兩個連接都隨機失敗。 我檢查了MTU(1500,它在其他部署中作業),ulimit似乎沒有問題,等等。
許多時候,Rabbit連接開始了,但是,最終,我得到了Rabbit的錯誤資訊:
AMQPConnector - reporting failure: AMQPConnectorAMQPHandshakeError。ProbableAuthenticationError [...]("ConnectionClosedByBroker: (403) 'ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. 詳情請見代理日志檔案。'"這不是真的,因為我百分之百確定憑證沒有問題,事實上,他們有時會作業。
重新嘗試連接,但沒有成功。
來自Rabbit日志:
[info] <0.16188.30> 關閉連接的所有通道
'xxx.yyy.zz.kkk:41426 -> yyy.zz.kkk.zz:5672'因為它已經被
關閉
[info] <0.16192.30> 接受AMQP
連接 <0.16192.30> (xxx.yyy.zz.kkk:41430 ->
yyy.zz.kkk.zz:5672)
[錯誤] <0.16192.30>
AMQP連接出錯 <0.16192.30> (xxx.yyy.zz.kkk:41430 ->
yyy.zz.kkk.zz:5672,狀態:開始)。) 拒絕PLAIN登錄:用戶
'someuser' - 無效的憑證
我試著用500和90的心跳,以及300的阻塞連接超時......
。對我來說,有時似乎沒有收到心跳聲。
我很迷茫,我想這可能是一個性能或網路問題,因為在其他受控環境中這是有效的,那么,我可以檢查什么?
uj5u.com熱心網友回復:
好吧,令人驚訝的是,似乎最明顯的原因是實際原因:云計算平臺中的一個虛擬網路被破壞了。
除錯程序是如何進行的(為了說服網路工程師進行檢查):
這時我停止了對 Rabbit 配置/引數等的關注。
最后,強行使用另一個網路進行了云部署,并且成功了。
這最終證實了這是一個網路問題,并且問題被轉移給了網路工程師。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/309433.html
標籤:
