記一次Dubbo服務注冊異常


         公司項目重構,把dubbo版本從2.5.8升級為2.6.2。升級后在本地運行一點問題都沒有;可是通過公司自研的發布系統將項目發布到測試環境的linux服務器下面后,出現了dubbo服務未注冊的現象。剛出現這問題,大家都一臉懵逼,畢竟在本地跑起來非常順暢。但問題總是要解決的,不可能因為dubbo服務注冊異常就不升級dubbo版本。因此記錄下這個問題是怎么解決的,便於后續查閱。

一、問題描述

    dubbo版本從2.5.8升級到2.6.2后,在linux服務器上運行項目。查詢dubbo監控中心,發現一個dubbo服務都沒注冊成功;並且項目啟動過程中沒有報錯。在windows本地運行項目則不會有任何問題,服務都注冊上了。
 

二、解決過程

(1)dump jvm線程棧
        因為是在linux服務器上出現了問題,因此我們需要dump jvm 線程棧
  • 先查詢出我們運行的項目的進程id
    • ps -ef | grep 項目名
  • dump 線程棧信息
    • jstack 進程id > zxy_thred_dump.txt
 
(2)分析dump文件
    分析dump文件,發現了異常的線程。信息如下圖所示
 
    發現異常出現在dubbo包下的 NetUtils.getLocalAddress0()這個方法上面
 
(3)在網絡上查詢這個異常信息,得到如下結果
        ip解析異常導致dubbo服務注冊異常
         
 
(4)查看服務器上hostname和ip綁定情況
        查看hostname命令: hostname
        查看hostname綁定的ip的命令: hostname -i
              
                    查看 hosts文件:cat /etc/hosts
              
              
               發現果然是hosts的問題,hostname kxlsv178;但hosts里面iphostname綁定沒有綁定。

 

三、解決方案

直接修改hosts文件,添加hostnameip

vim /etc/hosts

 

四、參考鏈接

(1)https://www.cnblogs.com/leo-li-3046/p/5702479.html

(2)https://www.cnblogs.com/jizhao/p/4081675.html

(3)https://blog.csdn.net/qianghaohao/article/details/80379118

(4)https://blog.csdn.net/perfect5085/article/details/7283067

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM