解決dubbo註冊zookeeper默認內網ip註冊

  前端時間作新項目的時候遇到一個dubbo的一個問題,在咱們項目搭建好後使用了其餘同事的支付服務,支付服務架構的方式使用了dubbo服務的方式,使用zookeeper做爲註冊中心,咱們新項目使用dubbo註解的方式引用dubbo服務,而後項目啓動的時候發生了咱們最不肯意看到的一件事,項目跑不起來了。查看了一下服務,確認服務沒有掛,而且在dubbo的管理工具上也找到了這個服務,回到程序報錯去看(測試服務器還在使用,就沒還原報錯信息),發現了一個沒見過的IP,很明顯是一個內網IP。支付服務跟註冊中心都是在一臺服務器,而服務的消費者是個人本機,因此內網IP是不能找到支付服務的。也就是說Zookeeper將Dubbo服務生產者的內網地址給了消費者,若是想使用支付服務將消費者放到同一臺服務器上就能夠找到了,可是這不是解決問題的根本方法,爲何會出現上面的狀況,查看了hosts文件發現,是因爲在服務器hosts配置的文件將主機名指向了內網IP地址前端

  

  如此zookeeper纔會將內網IP提供給消費者,咱們只須要加一個公網IP便可解決問題服務器

  

 

   hosts文件修改後就能生效,而後重啓zookeeper,重啓dubbo服務,而後發現能夠找到服務了(這裏我馬賽克了一下,你們也都能看懂,前面就是公網IP而後空格主機名稱而後空格主及名稱)網絡

  遇到dubbo找不到的問題的時候應該先確認全部提供者與註冊中心是否正常,全部配置是否是正確,註冊中心地址是否是同樣的,檢查防火牆是否是關閉,若是在仍是沒有找到提供者就能夠看一下是否是內網IP的緣由,這個其實也很好找,只要看控制檯的打印就能知道消費者是去那個IP地址找消費者了。文章最後再提一下,有時候hosts修改可能不生效,能夠重啓一下。架構

  如何查看本身是否修改爲功 uname -a工具

  

 

   我打碼的名字跟你配置的名字同樣的時候就成功了,若是不成功重啓一下網絡就能夠了測試

  service network restart 當看到ok就重啓成功了rest

  

相關文章
相關標籤/搜索