1. 程式人生 > >用dubbo時遇到的坑之消費者找不到提供者之伺服器端採用內網IP

用dubbo時遇到的坑之消費者找不到提供者之伺服器端採用內網IP

用dubbo時,在本地環境的時候一切正常,當轉到伺服器環境時,發現消費者提示找不到dubbo的地址。

檢視報錯資訊,提示尋找服務提供者的dubbo協議地址為伺服器的內網ip。

進入dubbo-admin檢視服務提供者資訊,發現提供者的IP地址為伺服器的內網IP,找到原因所在。

dubbo預設服務提供方的IP為內網IP,當在內網環境的時候,消費者訪問內網IP沒問題,但當服務提供者註冊到伺服器時,dubbo提供的仍然是伺服器的內網地址,當消費者訪問伺服器的內網IP來獲取服務,肯定訪問不到。

解決方法:

修改伺服器的hosts檔案 vi /etc/hosts,將本機的名稱#hostName#對映到伺服器的公網IP即可。

重啟註冊中心(zookeeper),重啟服務提供者。

重啟後進入dubbo-admin檢視,服務提供者IP已經是公網IP,重啟服務消費者,已經可以正常啟動,並呼叫服務。

至此,問題解決。