[問題解決]基於注解配置dubbo遇到ConnectionLoss for /dubbo/xxx問題解決


今天升級spring版本的時候,同時升級dubbo的版本,采用的是dubbo的基於注解的配置方法,采用curator作為dubbo的客戶端,

curator版本為4.1.0,啟動之后,發現一直報錯 ConnectionLoss for /dubbo/xxx, 通過debug調試源碼發現兩個問題:

1. 連接服務端經常返回 KeeperNode Not found的現象,即dubbo節點找不到,但是通過dubbo admin是可以看到節點注冊成功的

2. Zookeeper客戶端對於連接失敗的接口,一直不斷重連,Zookeeper實例連接正常

通過Zookeeper服務端日志發現有warn日志:Received at server of unknown type 15

通過推斷可以知道,由於客戶端版本過新,Zookeeper服務端部分特性不支持,導致客戶端的找不到節點和不斷重連

 

解決方案:修改pom.xml文件如下:

<dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.1.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.zookeeper</groupId>
                    <artifactId>zookeeper</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.13</version>
        </dependency>

這樣解決了引入高版本的curator客戶端,由繼續使用了Zookeeper的跟服務器兼容的客戶端版本。

curator和Zookeeper的搭配參考: http://curator.apache.org/zk-compatibility.html


免責聲明!

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



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