昨天遇到一個奇怪的問題,MQ意外掛掉后無法重啟,Java拋了成噸的異常,找了找發(fā)現(xiàn)問題是端口已占用硼端,本來以為是監(jiān)聽端口被哪個第三方服務(wù)給搶了,但是netstat后看到一個奇怪的TCP回環(huán)連接:
TCP 127.0.0.1:61616 127.0.0.1:61616 ESTABLISHED 9432
pid9432是公司的某個服務(wù)寓搬,而它的監(jiān)聽端口也沒有61616珍昨,并且TCP連接狀態(tài)是established,因此猜想可能是MQ掛掉之后它與MQ的某次嘗試重連時分配到的端口剛好是61616句喷,導(dǎo)致建立了一個無用的回環(huán)連接并且一直占用了這個端口镣典。
不過這個問題算是無傷大雅,畢竟當(dāng)MQ正常運行時應(yīng)該是不會出現(xiàn)這種問題的唾琼,好奇去找了下有沒有相關(guān)的資料或解釋兄春,看到了這篇文章:
Shallow Rampa - TCP Loop Connect
說明得比較清楚,也印證了我的猜想锡溯,還包括一些可能場景和簡單測試赶舆,有興趣的讀者可以去接著了解一下。