在上個星期 , 整個星期中都深陷其中. dubbo出現無法調用服務者的情況. 在dubbo-admin監測站上通過檢視IP為192.168.119.1

如上圖所示, 但是Linux 公網IP 為192.168.225.129 在經過網上查找問題後, 發現比較多的是說Linux的内網IP問題, 在我将幾乎
所有答案都試了一遍後, 幾近奔潰
,仍然無果.
在幾乎放棄之際,在一篇部落格下看到一個回答
此時醍醐灌頂, 因為我之前是使用的其他電腦, 正在使用的是新的電腦,并且項目也是新的. 總是以為是linux中出現了問題,在dubbo-admin
中出現的莫名IP更是把我迷惑了, 一直苦苦尋找無果. 在次懷着希望啟動tomcat , 仔細确認每個細節. 有趣的事情來了
大家可以看到, 出現此BUG其實就是dubbo消費者無法消費的原因.當抛出此bug時,前台顯示為
之前看到這個異常提示時, 看到192.168.119.1這個IP位址并不是公網IP , 導緻誤導我一直以為是由于内網IP導緻的.
現在我們再調試一下看得更詳細一些
此時可以看到消費者拿到的consumerUrl IP為192.168.119.1
我們再看一下dobbo-admin中顯示的服務端IP
從上面服務生産者對象 可以看到消費者拿到的url與生産者是IP一緻的 , 那麼上面的評論截圖觀點就成立了. 那麼我們
再注意一些細節, 就是其中的屬性url . url是我們服務消費者的真實位址. 是以我們推導出 . zookeeper并不會将真正的
服務生産者IP給消費者. 而是将IP封裝到傳回的對象中
最後做個總結:不管是外網内網,伺服器隻要保證連上并開放了端口,其他的均無關. 并且要仔細檢查服務端是否是因為抛出了異常導緻消費
者無法調用生産者服務